Ankündigung

Einklappen
Keine Ankündigung bisher.

Schleife Sortieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Schleife Sortieren

    Hallo zusammen,

    ich suche nach einem Weg, wie man eine Schleife nach deren Inhalt sortieren kann, bis jetzt leider vergebens. Hier die Situation:

    PHP-Code:

            $sql 
    $pdo->prepare("SELECT id FROM my_content WHERE parent = ?");
            
    $sql->execute(array($parent)); 
            foreach (
    $sql as $row) {
                
    $my_id $row['id'];
                echo 
    "<br>$my_id";

                    
    $sql $pdo->prepare("SELECT value FROM tv_content WHERE cont_id = ?");
                    
    $sql->execute(array($my_id));
                    
    $row $sql->fetch(); $tv_value $row['value'];
                    echo 
    " | $tv_value";   
            } 
    Mit diesem Aufruf erhalte ich für jeden Eintrag eine dazugehörige Zahl ($tv_value). Da diese Zahlen variieren, möchte ich die Einträge aufsteigend nach deren $tv_value anzeigen lassen. Wie ist das in der Form möglich?


    Grüße,
    Joe

  • #2
    Code:
    SELECT my_content.id, tv_content.value FROM my_content LEFT JOIN tv_content ON my_content.id=tv_content.cont_id WHERE my_content.parent=? ORDER BY tv_content.value ASC
    Ungetestet.

    Kommentar


    • #3
      Warum lernst du nicht die dazugehörige Sprache, wenn du mit Datenbanken umgehen willst.
      Zur Kommunikation gehört eben auch das Verständnis, in diesem Fall die Sprache SQL.

      Kommentar


      • #4
        Zitat von jonas3344 Beitrag anzeigen
        Code:
        SELECT my_content.id, tv_content.value FROM my_content LEFT JOIN tv_content ON my_content.id=tv_content.cont_id WHERE my_content.parent=? ORDER BY tv_content.value ASC
        Ungetestet.
        Vielen Dank, ich werde es testen!


        Zitat von protestix Beitrag anzeigen
        Warum lernst du nicht die dazugehörige Sprache, wenn du mit Datenbanken umgehen willst.
        Zur Kommunikation gehört eben auch das Verständnis, in diesem Fall die Sprache SQL.
        Ist natürlich ein richtiger Einwand. Habe mir dazu auch schon das Material besorgt, um es zu lernen. Muss halt nur noch anpacken...

        Kommentar


        • #5
          Ich hätte noch eine Frage zu SQL.

          Ist es möglich einen Wert, welche ausgelesen wird im SQL Aufruf durch individuelle Angaben zu vervollständigen und diesen gleich mit "LEFT JOIN ON" weiter zu verarbeiten?

          Hier ein Beispiel:

          PHP-Code:
                      SELECT
                          my_content
          .id,
                          
          my_content.nr,
                          
          kunden.nummer,

                      
          FROM my_content

                      LEFT JOIN kunden
                      ON kunden
          .name 'knd' my_content.nr 
          Hier wird der Name des Kunden "knd12" mit der content nr "12" und dem "kdn" davor verglichen. Zu mindestens war das die Idee, die so nicht zu funktionieren scheint...
          Sprich. Ich muss folgende Variable bilden: "kdn"+"my_content.nr"

          Kommentar


          • #6
            Ja, das geht: ON kunden.name = CONCAT('knd', my_content.nr)
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              Super, vielen Dank! Hat funktioniert!

              Kommentar


              • #8
                Zitat von protestix Beitrag anzeigen
                Warum lernst du nicht die dazugehörige Sprache, wenn du mit Datenbanken umgehen willst.
                Zur Kommunikation gehört eben auch das Verständnis, in diesem Fall die Sprache SQL.
                Hör doch mal bitte auf, hier dauernd die Leute anzupflaumen! Was hast du eigentlich für ein Problem? Wenn du so genau über Kommunikation bescheid weißt, warum kennst du die Regeln der Höflichkeit nicht?

                Kommentar


                • #9
                  Zitat von JoePetts Beitrag anzeigen
                  Hallo zusammen,

                  ich suche nach einem Weg, wie man eine Schleife nach deren Inhalt sortieren kann, bis jetzt leider vergebens. Hier die Situation:

                  PHP-Code:

                  $sql 
                  $pdo->prepare("SELECT id FROM my_content WHERE parent = ?");
                  $sql->execute(array($parent));
                  foreach (
                  $sql as $row) {
                  $my_id $row['id'];
                  echo 
                  "<br>$my_id";

                  $sql $pdo->prepare("SELECT value FROM tv_content WHERE cont_id = ?");
                  $sql->execute(array($my_id));
                  $row $sql->fetch(); $tv_value $row['value'];
                  echo 
                  " | $tv_value";

                  Mit diesem Aufruf erhalte ich für jeden Eintrag eine dazugehörige Zahl ($tv_value). Da diese Zahlen variieren, möchte ich die Einträge aufsteigend nach deren $tv_value anzeigen lassen. Wie ist das in der Form möglich?


                  Grüße,
                  Joe
                  Man kann natürlich ein Array in einer Schleife sortieren. Aber das ist in 99% aller Fälle nicht notwendig. Um das Array nach einem bestimmten Feld sortiert zu haben, benutzt man den "ORDER BY"-Clause in SQL. Mit diesem "Befehl" kannst du nach allen Feldern sortieren, die es in den am Select "beteiligten" Tabellen gibt. Warum "beteiligt"? Weil du z.B. mit dem in Jonas3344 gemachten Vorschlag (#2) durch den Join auf Daten aus verschiedenen Tabellen zugreifen kannst.

                  Ich habe den Eindruck, daß du da irgendwo diverse "Codeschnipsel" hervorholst, die du dann zu verwenden versuchst. Das wird auf die Dauer nicht gutgehen. Insofern hat Protestix Recht: Du solltest dir tatsächlich systematisch SQL aneignen. Das zahlt sich aus.

                  Grüße

                  Alf

                  Kommentar


                  • #10
                    Alf2016 Danke für die Erklärung.

                    Ich saß jetzt schon bisschen länger dran und habe den Vorschlag von Jonas3344 ein paar mal zerlegt und wieder zusammengesetzt, unterschiedliche Bedingungen auf 5 Tabellen gleichzeitig angewendet. Jetzt fange ich auch an das System dahinter zu verstehen. Es war für meine Projekte bis jetzt halt nicht nötig gewesen, mehr als einen einfachen Aufruf der Datenbank zu machen weil ich eigentlich dabei bin PHP zu lernen. Aber langsam zeigt sich dass ich das SQL Buch doch dazwischen durchgehen sollte..

                    Kommentar

                    Lädt...
                    X