martenk
Goto Top

Suchreihenfolge mysql tabelle

Hallo Gemeinschaft,

habe folgenden Code
function getTreatmentDatesAction($id_patient){
    Core::connectDB();
    $treatmentDates = Core::getTreatmentDates($id_patient);
    echo json_encode($treatmentDates);
    Core::closeDB();
    exit;
}

Könnt ihr mir erklären, wie ich es hinbekomme, dass man in der Suche vom letzten Eintrag der DB Tab beginnt

Content-Key: 6359172284

Url: https://administrator.de/contentid/6359172284

Printed on: April 27, 2024 at 06:04 o'clock

Member: MirkoKR
MirkoKR Mar 14, 2023 at 09:10:09 (UTC)
Goto Top
Moin.

Das musst du entweder in der dem SQLStatement zugrunde liegenden SQLQuery definieren oder als Sortierparamater mitgeben und im SQLQuery nutzen ...
Member: martenk
martenk Mar 14, 2023 at 09:13:28 (UTC)
Goto Top
könntest du mir ein bsp geben
Member: ukulele-7
ukulele-7 Mar 14, 2023 at 09:16:31 (UTC)
Goto Top
Eine SQL-Tabelle hat keine Reihenfolge, so funktionieren relationale DBMS Datenbanken nicht. Du kannst natürlich die Daten bei der Ausgabe in eine Reihenfolge bringen in dem du nach einer Spalte sortierst.
SELECT * FROM tabelle ORDER BY spalte
Member: SlainteMhath
SlainteMhath Mar 14, 2023 at 09:17:34 (UTC)
Goto Top
Moin,

dein Code enthält kein Stück SQL, daher generisch...

SELECT * FROM table
WHERE feld="Suchkriterium"  
ORDER BY sortier_feld DESC

Gerne auch mit "LIMIT 1", wenn du z.b. nur "das letzte" Ergebnis haben möchtest

lg,
Slainte
Member: martenk
martenk Mar 14, 2023 at 09:24:42 (UTC)
Goto Top
ich wollte die letzten 10 angezeigt bekommen und danach soll die Abfrage abbrechen

function getTreatmentDates(index, isId){
                var idP = null;
                if(isId == true){
                    idP = index;
                }
                else{
                    idP = hashPatients[index - 1];
                }
                selectedTreatmentDate = "";  
                result = $.ajax({
                    type: 'POST',  
                    async: false, // Wait for result from server.
                    url: 'actions.php',  
                    data: ({
                        action: "get_treatment_dates",  
                        id_patient: idP //hashPatients[index - 1]
                    }),
                    success: function(data) {
                        //alert(data);
                    }
                }).responseText;
               ;
                var data = $.parseJSON(result);
                $("#patient-treatmentdates-select-result").empty()  
                var list = $("#patient-treatmentdates-selectable").empty();  
                var count = 0;

              let forLoopCounter = 0;

for (const i in data) {
  if (forLoopCounter === 10) break;

  // Rest des Codes
  const staff = $.parseJSON(getStaffById(data[i]['id_staff']));  
  const treatment = $.parseJSON(getTreatmentById(data[i]['id_treatment']));  
  list.append(
    '<li class="ui-widget-content" style="height: 64px;">' +  
      data[i]['treatment_date'] +  
      '<br /><font style="font-size: 0.87em;">bis ' +  
      data[i]['treatment_time_end'] +  
      ' (' +  
      treatment['shortcut'] +  
      ') <br />' +  
      staff['prename'] +  
      ' ' +  
      staff['surname'] +  
      '</font></li>'  
  );
  console.log(data);
  hashTreatmentDates[count++] = data[i]['id_patient_treatment'];  
  forLoopCounter++;
}


                return result;
            }
Member: SlainteMhath
SlainteMhath Mar 14, 2023 at 09:42:09 (UTC)
Goto Top
Wie oben schon mehrmals erwähnt: du musst das zugrunde liegende SQL Statemant anpassen. Vermutlich steht das irgendwo in deiner "action.php"-Datei.
Member: ukulele-7
ukulele-7 Mar 14, 2023 updated at 09:59:09 (UTC)
Goto Top
Ich hab echt keinen Schimmer von PHP aber ich würde vermuten das man keine Schleife / Loop baut um 10 Datensätze aus einer SQL Tabelle zu holen und dann "abbricht", LIMIT ist dein Freund. Setze ein passendes SQL Statement an das DBMS ab.

Deine Probleme sind eigentlich eher PHP, vielleicht den Titel anpassen.
Member: martenk
martenk Mar 14, 2023 at 10:07:40 (UTC)
Goto Top
das ist dann wohl mein Problem - möchte nur die letzten zehn angezeigt bekommen, weil die Datenmenge so gross ist und die wartezeit so lang ist
Member: MirkoKR
MirkoKR Mar 14, 2023 updated at 10:17:18 (UTC)
Goto Top
Du rufst in deinem php-script ein SQLStatement auf deinem mysql-Server auf ...

... dieser kennt das SQLStatement und führt eine dafür definierte SQLQuery aus...

... was und wieviel diese SQLQuery zurück liefert passiert auf dem mysql-Server und ist für dein php-Script vollkommen unbekannt!

... du erhälst das fertige Ergebnis ...