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-ID: 6359172284

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

Ausgedruckt am: 22.11.2024 um 06:11 Uhr

MirkoKR
MirkoKR 14.03.2023 um 10:10:09 Uhr
Goto Top
Moin.

Das musst du entweder in der dem SQLStatement zugrunde liegenden SQLQuery definieren oder als Sortierparamater mitgeben und im SQLQuery nutzen ...
martenk
martenk 14.03.2023 um 10:13:28 Uhr
Goto Top
könntest du mir ein bsp geben
ukulele-7
ukulele-7 14.03.2023 um 10:16:31 Uhr
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
SlainteMhath
SlainteMhath 14.03.2023 um 10:17:34 Uhr
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
martenk
martenk 14.03.2023 um 10:24:42 Uhr
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;
            }
SlainteMhath
SlainteMhath 14.03.2023 um 10:42:09 Uhr
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.
ukulele-7
ukulele-7 14.03.2023 aktualisiert um 10:59:09 Uhr
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.
martenk
martenk 14.03.2023 um 11:07:40 Uhr
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
MirkoKR
MirkoKR 14.03.2023 aktualisiert um 11:17:18 Uhr
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 ...