Blättern

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

  • Blättern

    Sicher wieder eine Anfängerfrage:
    Für die bessere Übersichtlichkeit der Datenausgabe unter Datensätze aus einer Datenbank auslesen und ausgeben brauche ich eine Lösung. Dafür habe ich ein funktionierendes Script unter http://www.networker.24.eu/blaettern.php
    PHP-Code:
    <?php 
    $seite 
    $_GET["seite"];  //Abfrage auf welcher Seite man ist 

    //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 
    if(!isset($seite)) 
       { 
       
    $seite 1
       } 

    //Verbindung zu Datenbank aufbauen 

    $link mysql_connect("localhost","user123456","Password123") or die ("Keine Verbindung moeglich"); 
    mysql_select_db("db123456-main") or die ("Die Datenbank existiert nicht"); 

    //Einträge pro Seite: Hier 15 pro Seite 
    $eintraege_pro_seite 15

    //Ausrechen welche Spalte man zuerst ausgeben muss: 

    $start $seite $eintraege_pro_seite $eintraege_pro_seite


    //Tabelle Abfragen 
    //Tabelle hei&szlig;t hier einfach: Tabelle 
    $abfrage "SELECT * FROM test LIMIT $start$eintraege_pro_seite"
    $ergebnis mysql_query($abfrage); 
    while(
    $row mysql_fetch_object($ergebnis)) 
        { 
       echo 
    $row->id."<br>"// Hier die Ausgabe der Einträge 
       



    //Jetzt kommt das "Inhaltsverzeichnis", 
    //sprich dort steht jetzt: Seite: 1 2 3 4 5 


    //Wieviele Einträge gibt es überhaupt 

    //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten 
    //also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt 
    //Sonst funktioniert die Blätterfunktion nicht richtig, 
    //und hier kann nur 1 Feld abgefragt werden, also id 

    $result mysql_query("SELECT id FROM test"); 
    $menge mysql_num_rows($result); 

    //Errechnen wieviele Seiten es geben wird 
    $wieviel_seiten $menge $eintraege_pro_seite

    //Ausgabe der Seitenlinks: 
    echo "<div align=\"center\">"
    echo 
    "<b>Seite:</b> "


    //Ausgabe der Links zu den Seiten 
    for($a=0$a $wieviel_seiten$a++) 
       { 
       
    $b $a 1

       
    //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben 
       
    if($seite == $b
          { 
          echo 
    "  <b>$b</b> "
          } 

       
    //Aus dieser Seite ist der User nicht, also einen Link ausgeben 
       
    else 
          { 
          echo 
    "  <a href=\"?seite=$b\">$b</a> "
          } 


       } 
    echo 
    "</div>"
    ?>
    Wenn ich es jetzt aber mit meinen Feldnamen ausgeben möchte habe ich bisher die fehlerhafte Lösung
    PHP-Code:
    <?php 
    $seite 
    $_GET["seite"];  //Abfrage auf welcher Seite man ist 

    //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 
    if(!isset($seite)) 
       { 
       
    $seite 1
       } 

    //Verbindung zu Datenbank aufbauen 

    $link mysql_connect("localhost","user123456","Password123") or die ("Keine Verbindung moeglich"); 
    mysql_select_db("db123456-main") or die ("Die Datenbank existiert nicht"); 


    //Einträge pro Seite: Hier 15 pro Seite 
    $eintraege_pro_seite 15

    //Ausrechen welche Spalte man zuerst ausgeben muss: 

    $start $seite $eintraege_pro_seite $eintraege_pro_seite


    //Tabelle Abfragen 
    //Tabelle hei&szlig;t hier einfach: Tabelle 
    $abfrage "SELECT * FROM test LIMIT $start$eintraege_pro_seite"
    $ergebnis mysql_query($abfrage); 
    while(
    $row mysql_fetch_object($ergebnis)) 

    echo 
    '<table border="1">';
    echo 
    "<tr><th>Name</th><th>PLZ</th><th>Ort</th><th>Gebiet/ Kreis</th><th>Ziele</th><th>Mitglieder weniger10</th><th>Mitglieder 10-50</th><th>Mitglieder ueber 50</th><th>Kontakt</th><th>Demokratie</th><th>Soziales</th><th>Bildung</th><th>Kultur</th><th>Umwelt und territoriale Entwicklung</th><th>Sonstiges</th></tr>";

    // Ab hier werden die Datensaetze zeilenweise ausgeben (auch fetchen genannt)
    while ($datensatz mysql_fetch_array$abfrageergebnis ))
    {    

        
    // Jeder Datensatz entspricht einer Tabellenzeile
        
    echo "<tr>";
        echo 
    "<td>" .htmlspecialchars$datensatz['name'] ). "</td>";
        echo 
    "<td>" .htmlspecialchars$datensatz['plz'] ). "</td>";
        echo 
    "<td>" .htmlspecialchars$datensatz['ort'] ). "</td>";
        echo 
    "<td>" .htmlspecialchars$datensatz['gebiet'] ). "</td>";
        echo 
    "<td>" .htmlspecialchars$datensatz['ziele'] ). "</td>";
        echo 
    "<td>" .$datensatz['mitglieder']. "</td>";
        echo 
    "<td>" .$datensatz['mitglieder2']. "</td>";
        echo 
    "<td>" .$datensatz['mitglieder3']. "</td>";
        echo 
    "<td>" .htmlspecialchars$datensatz['kontakt'] ). "</td>";
        echo 
    "<td>" .$datensatz['demokratie']. "</td>";
        echo 
    "<td>" .$datensatz['soziales']. "</td>";
        echo 
    "<td>" .$datensatz['bildung']. "</td>";
        echo 
    "<td>" .$datensatz['kultur']. "</td>";
        echo 
    "<td>" .$datensatz['umwelt']. "</td>";
        echo 
    "<td>" .$datensatz['sonstige']. "</td>";    
        echo 
    "</tr>";
    }

    //Jetzt kommt das "Inhaltsverzeichnis", 
    //sprich dort steht jetzt: Seite: 1 2 3 4 5 


    //Wieviele Einträge gibt es überhaupt 

    //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten 
    //also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt 
    //Sonst funktioniert die Blätterfunktion nicht richtig, 
    //und hier kann nur 1 Feld abgefragt werden, also id 

    $result mysql_query("SELECT id FROM test"); 
    $menge mysql_num_rows($result); 

    //Errechnen wieviele Seiten es geben wird 
    $wieviel_seiten $menge $eintraege_pro_seite

    //Ausgabe der Seitenlinks: 
    echo "<div align=\"center\">"
    echo 
    "<b>Seite:</b> "


    //Ausgabe der Links zu den Seiten 
    for($a=0$a $wieviel_seiten$a++) 
       { 
       
    $b $a 1

       
    //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben 
       
    if($seite == $b
          { 
          echo 
    "  <b>$b</b> "
          } 

       
    //Aus dieser Seite ist der User nicht, also einen Link ausgeben 
       
    else 
          { 
          echo 
    "  <a href=\"?seite=$b\">$b</a> "
          } 


       } 
    echo 
    "</div>"
    ?>
    Frage: wie kann ich statt der Ausgabe der Datensatznummer meine Felder wie unter Datensätze aus einer Datenbank auslesen und ausgeben auslesen, nur halt limitiert wie im ersten Script?
    Danke im Voraus wieder für die Hilfe!

  • #2
    PHP-Code:
    while($row mysql_fetch_object($ergebnis)) 
    Wo sind hier geschweifte Klammern?
    PHP-Code:
    while ($datensatz mysql_fetch_array$abfrageergebnis )) 
    Es gibt keine Variable names $abfrageergebnis.

    Tipp: Ein verbünftiges Debugging sollte helfen.

    Gruß
    Peter

    PS. Ich verschieb das mal ins richtige Forum, da es ein PHP-Problem ist.
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Zitat von ich1d3 Beitrag anzeigen
      PHP-Code:
      $abfrage "SELECT * FROM test LIMIT $start$eintraege_pro_seite"
      $ergebnis mysql_query($abfrage); 
      while(
      $row mysql_fetch_object($ergebnis)) 

      echo 
      '<table border="1">';
      echo 
      "<tr><th>Name</th><th>PLZ</th><th>Ort</th><th>Gebiet/ Kreis</th><th>Ziele</th><th>Mitglieder weniger10</th><th>Mitglieder 10-50</th><th>Mitglieder ueber 50</th><th>Kontakt</th><th>Demokratie</th><th>Soziales</th><th>Bildung</th><th>Kultur</th><th>Umwelt und territoriale Entwicklung</th><th>Sonstiges</th></tr>";

      // Ab hier werden die Datensaetze zeilenweise ausgeben (auch fetchen genannt)
      while ($datensatz mysql_fetch_array$abfrageergebnis ))

      Das gehört bisher mit zu den lustigsten Schreibweisen, die ich je sah. $abfrage und $ergebnis kombiniert zu $abfrageergebnis.

      Du kannst sicherlich Laub und Baum zu Laubbaum kombinieren, nur $abfrage und $ergebnis sind zwei Variablen, somit Bezeichner für Speicherplätze im System (oder Bezeichner für Adressen von Speicherplätzen im System), wo die den Variablen zugewiesenen Werte abgelegt werden. Und diese Bezeichner müssen eindeutig sein und bleiben.

      Du kannst auch im realen Leben nicht einfach zwei Adressen zu einer verschmelzen. Eventuell durch Gründung eines gemeinsamen Hausstandes oder wie man das bezeichnet. Doch der wird dann auch über kurz oder lang behördlich beim Einwohnermeldeamt erfasst. Wenn Du zwei Variablen durch geeignete Operatoren vereinen möchtest, dann brauchst Du zu keiner Behörde, doch dem System musst Du das schon bekannt geben.

      Alles was ich bisher im anderen Thread las, mindestens jeder zweite Fehler lag an undefinierten oder verdrehten Variablen.

      Kommentar

      Lädt...
      X