Ankündigung

Einklappen
Keine Ankündigung bisher.

Informationen aus Zeilen mit einer Bestimmten ID auslesen. | pdo

Einklappen

Neue Werbung 2019

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

  • Informationen aus Zeilen mit einer Bestimmten ID auslesen. | pdo

    Hallo,

    ich habe da mal eine Frage. Und zwar ist es möglich mittels PDO Informationen aus einer Tabelle auszugeben, bei der nur die Informationen von Zeilen ausgegeben werden wo ID = 1 ist? Also ich meine das ich z.b 100 Zeilen habe mit 5 versch. ID's. Jetzt möchte ich aber nur die Zeilen ausgeben lassen wo die ID = 1 ist. Und die Daten möchte ich dann wiederum per HTML in eine Tabelle schreiben.

    Um alles auszulesen benutze ich zurzeit folgendes:
    PHP-Code:
    <?php
    $statement 
    $pdo->prepare("SELECT * FROM mayfly ORDER BY id");
    $result $statement->execute();

                            while(
    $data $statement->fetch()) {
                                echo 
    "<tr>";
                                echo 
    "<td>".$data['id']."</td>";
                                echo 
    "<td>".$data['eventname']."</td>";
                                echo 
    "<td>".getuserdata($data['userid'], 'vorname')."</td>";
                                echo 
    "<td>".dateformat($data['eventdate'])."</td>";
                                echo 
    "<td>".$data['eventplace']."</td>";
                                echo 
    "<td>"."<a class='button small' href='$hostname/home/usr.php?hl=de-DE&q=mayflylist&cid=getpost&id=".$data['id']."'>Infos</a>"."</td>";
                                echo 
    "<td></td>";
                                echo 
    "</tr>";
                            }
                            
    ?>
    Nun möchte ich aber in eine Tabelle nur die Informationen von Zeilen mit der ID 1.

    Ich hoffe es war halbwegs verständlich.

    LG Flo

  • #2
    PDO ist nur die API. Die Abfrage ist SQL. Somit ist es egal ob du das mit PDO oder Mysqli löst.

    Du solltest ein mal ein Tutorial durcharbeiten und dich mit den Grundlagen vertraut machen, dann musst du bei so einer leichten Aufgabe auch nicht im Forum nachfragen.

    Kommentar


    • #3
      Zeilen mit der ID 1
      Wenn du mehrere Zeilen mit der selben ID hast, dann hast du da was falsch gemacht. Die ID ist als eindeutiges Identifikationsmerkmal des des Datensatzes gedacht und sollte so verwendet werden.

      Kommentar


      • #4
        Also Ich meine die Spalte die heißt AID und überall wo bei AID 1 steht soll ausgegeben werden

        Kommentar


        • #5
          Dann führe dir ein SQL Tutorial deiner Wahl zu Gemüte (z.B. dieses hier: https://www.sql-und-xml.de/sql-tutorial/), dann bekommst du dein Problem auch alleine gelöst.
          Anbei ist AID vermutlich kein besonders günstiger Bezeichner. Deine Namen sollten so gewählt sein, dass man nach dem Lesen weiß was drin steht.

          Kommentar


          • #6
            gebt doch dem armen Fragesteller wenigstens einen Hinweis auf WHERE. Das kann sogar MySQL, obwohl er ja PDO hat, was auch PostgreSQL sein könnte...
            PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

            Kommentar


            • #7
              Ich habe jetzt folgendes versucht:

              Code:
              SELECT * FROM mayfly WHERE AID = 1
              aber irgendwie funktioniert das auch nicht.

              Kommentar


              • #8
                Ich habe es jetzt doch hinbekommen. Habe das Semicolon vergessen.

                test.php

                PHP-Code:
                <?php
                include("home/sites/inc/web.conf.php");
                include(
                "home/sites/inc/functions.inc.php");

                intialize();
                $statement $pdo->prepare("SELECT * FROM test WHERE AID = 1");
                $result $statement->execute();

                ?>
                <table>
                    <thead>
                        <th>ID</th>
                        <th>Wert</th>
                        <th>Checksumme</th>
                    </thead>
                    <tbody>
                        <?php
                        
                while($data $statement->fetch()) {
                            echo 
                "<tr>";
                            echo 
                "<td>".$data['AID']."</td>";
                            echo 
                "<td>".$data['value']."</td>";
                            echo 
                "<td>".$data['checksumme']."</td>";
                            echo 
                "</tr>";
                        }



                        
                ?>
                    </tbody>
                </table>

                Kommentar


                • #9
                  Weiß jetzt noch jemand wie ich schauen kann ob einträge mit der AID 1 vorhanden sind?

                  Kommentar


                  • #10
                    Klar. Mit einem SELECT. Datenbanken sind toll, gell?
                    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                    Kommentar


                    • #11
                      Zitat von flokle1999 Beitrag anzeigen
                      Weiß jetzt noch jemand wie ich schauen kann ob einträge mit der AID 1 vorhanden sind?
                      Das ist doch schon richtig mit ...WHERE AID = 1.
                      Da gibt es nichts weiter, wenn du keine weiteren einschränkenden Kriterien hast.

                      Kommentar


                      • #12
                        Ja aber ich möchte wenn kein Eintrag mit der AID 1 vorhanden ist, dass dann eine Nachricht in die Variable $db_status geschrieben wird.

                        Kommentar


                        • #13
                          Ich würde die Daten mit fetch_all abholen. Wenn du keine Daten zurück bekommst ist das Ergebnis leer, das kannst du prüfen und dann in die Tabellenüberschrift reinschreiben, dass keine Daten vorhanden sind.

                          PHP-Code:
                          $result $statement->fetchAll(PDO::FETCH_ASSOC);

                          $tablecontent null;

                          if ( empty(
                          $result) ){

                              
                          $tablecontent "<caption>Leider keine Ergebnisse.</caption>\n";                                     

                          }else{

                              
                          $tablecontent "<caption>Ergebnisse:</caption>";          
                              
                          $tablecontent .= '
                              <thead>
                                  <tr>
                                      <th>ID</th>
                                      <th>Wert</th>
                                      <th>Checksumme</th>
                                  </tr>
                              </thead>
                              <tbody>'
                          ;

                              foreach (
                          $result as $column) {
                                  
                          $tablecontent .= '
                                  <tr>
                                      <td>' 
                          htmlspecialchars($column['AID'], ENT_QUOTES ENT_HTML5'UTF-8') . '</td>
                                      <td>' 
                          htmlspecialchars($column['value'], ENT_QUOTES ENT_HTML5'UTF-8') . '</td>
                                      <td>' 
                          htmlspecialchars($column['checksumme'], ENT_QUOTES ENT_HTML5'UTF-8') . '</td>
                                  </tr>'
                          ;
                              }

                              
                          $tablecontent .= '
                              </tbody>' 
                          "\n";


                          In dein Ausgabe-HTML schreibst du dann lediglich die Variable rein.
                          PHP-Code:
                          ...
                          <table>
                              <?=$tablecontent;?>
                          </table>
                          ...
                          Einlesen solltest du dich in PDO::fetchAll
                          sowie in Kontextwechsel und HTML Tabellen, da hattest du nämlich auch Fehler drin, weil du das TR-Element vergessen hattest.
                          Ausserdem das E.V.A. Prinzip hier in der Wissenssammlung.

                          Kommentar


                          • #14
                            Vielen Dank euch.

                            Jetzt funktioniert alles prima ich werde mich mal einlesen.

                            Kommentar


                            • #15
                              Ok funktioniert alles soweit so gut. Kann man auch mit 2 mal WHERE arbeiten und wenn wie, weil ich konnte das so jetzt nicht erschließen.

                              Kommentar

                              Lädt...
                              X