Blättern in DB (PHP5)

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

  • Blättern in DB (PHP5)

    Habe ein script gesucht welches in PHP5 lauffahig ist. Es gibt zahlreiche Schnipsel zum Thema Blättern. Aber keines habe ich zum laufen gebracht in PHP5.

    Also habe ich mich selber an die arbeit gemacht ein Blätter - script zu schreiben welches funktioniert.


    Hier ein Beispiel:


    PHP-Code:
    <?
    // VARIABLEN FÜR DB - CONNECT
    $db_host = 'DB - HOST';
    $db_user = 'DB - USER;
    $db_pass = 'DB - PASS';
    $db_database = 'DATENBANK';


    // VERBINDUNG ZU DB
    $db = mysql_connect($db_host,$db_user,$db_pass) OR DIE ('<b />Keine Verbindung zur SQL-Datenbank!');
    mysql_select_db($db_database,$db) OR DIE ('<b />Konnte Datenbank $db_database nicht finden!');


    // VARIABLEN VORBEREITEN
    if($_GET[start])
      {
       $start = $_GET[start];
      }
    else
      {
      $start = 0;
      }

    //ANZAHL DER ERGEBNISE PRO SEITE
    $step = 1;

    //WIEVIEL DATENSÄTZE
    $num = mysql_num_rows(mysql_query("SELECT * FROM tabelle")) or die(mysql_error());
    echo $num.' Datensätze<br /><br />';

    //ABFRAGE UND AUSGABE
    $sql = mysql_query("SELECT * FROM tabelle LIMIT $start, $step") or die(mysql_error());
    while($ds=mysql_fetch_array($sql)){
    // AUSGABE 
    echo'Ausgabe1: '.$ds[ausgabe1].' Ausgabe2: '.$ds[ausgabe2].'<br />';

    }

    // BLÄTTERFUNKTION
    echo'<table align="center" width="400"><tr>';
    if($start == '0')
      {
       echo '';
      }
    else
      {
      $z = $start - $step;
       echo'<td align="left"><a href="index.php?start='.$z.'">Zurück</a></td>';
      }

    if($start < ($num-1))
      {
      $w = $start+$step;
       echo'<td align="right"><a href="index.php?start='.$w.'">Weiter</a></td>';
      }
      else
      {
       echo'';
      }
    echo'</tr></table>';
    ?>

    Ich hoffe das ich mit diesem Beispiel vielen Mitgliedern helfen kann.

    PS: Wer schreibfehler findet kann sie gern behalten
    Zuletzt geändert von Broesel2000; 02.09.2007, 13:01.
    Broesel

  • #2
    Hallo!

    Ich würde beim ermitteln der Zeilenanzahl kein Sternchen verwenden, um nicht die gesamte Tabelle zu holen.

    PHP-Code:
    //WIEVIEL DATENSÄTZE
    $num mysql_num_rows(mysql_query("SELECT id FROM tabelle")) or die(mysql_error());
    echo 
    $num.' Datensätze<br /><br />'

    Kommentar


    • #3
      Falsches Forum.

      PHP-Code:
      $db_user 'DB - USER; 
      müsste außerdem
      PHP-Code:
      $db_user 'DB - USER'
      heißen.
      Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

      Kommentar


      • #4
        PHP-Code:
        $sql mysql_query("SELECT * FROM tabelle LIMIT $start$step") or die(mysql_error()); 
        Von Sicherheit kann man in diesem Fall nicht sprechen ...
        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

        Kommentar


        • #5
          Hast ja recht.

          Habe nur meine tabellen herraus genommen und durch ein * ersetzt.


          Und das mit dem fehlenden ( ' ) ist ein schreibfehler beim herausnehmen meiner DB.

          Also Hier Nocheimal In Korrekter Form:


          PHP-Code:

          <?
          // VARIABLEN FÜR DB - CONNECT
          $db_host = ' DB - HOST ';     //Datenbank Host
          $db_user = ' DB - USER ';     // Datenbank User
          $db_pass = ' DB - PASS ';     // Datenbank Passwort
          $db_database = ' DATENBANK ';   // Datenbank


          // VERBINDUNG ZU DB
          $db = mysql_connect($db_host,$db_user,$db_pass) OR DIE ('<b />Keine Verbindung zur SQL-Datenbank!');
          mysql_select_db($db_database,$db) OR DIE ('<b />Konnte Datenbank $db_database nicht finden!');


          // VARIABLEN VORBEREITEN
          if($_GET[start])
            {
             $start = $_GET[start];
            }
          else
            {
            $start = 0;
            }

          //ANZAHL DER ERGEBNISE PRO SEITE
          $step = 1; 

          //WIEVIEL DATENSÄTZE
          $num = mysql_num_rows(mysql_query("SELECT id FROM tabelle")) or die(mysql_error());
          echo $num.' Datensätze<br /><br />'; // AUSGABE WIEFIELE DATENSÄTZE VORHANDEN (  Nur zum Test )

          //ABFRAGE UND AUSGABE
          $sql = mysql_query("SELECT * FROM tabelle LIMIT $start, $step") or die(mysql_error());
          while($ds=mysql_fetch_array($sql)){
          // AUSGABE 
          echo'Ausgabe1: '.$ds[ausgabe1].' Ausgabe2: '.$ds[ausgabe2].'<br />';

          }

          // BLÄTTERFUNKTION
          echo'<table align="center" width="400"><tr>';
          if($start == '0')
            {
             echo '';
            }
          else
            {
            $z = $start - $step;
             echo'<td align="left"><a href="index.php?start='.$z.'">Zurück</a></td>';
            }

          if($start < ($num-1))
            {
            $w = $start+$step;
             echo'<td align="right"><a href="index.php?start='.$w.'">Weiter</a></td>';
            }
            else
            {
             echo'';
            }
          echo'</tr></table>';

          mysql_close($db);
          ?>
          Zuletzt geändert von Broesel2000; 02.09.2007, 14:12.
          Broesel

          Kommentar


          • #6
            Ist nur ein Beispiel.

            Die WHERE Bedingung muss je nach Aufbau der jeweiligen Datenbank angepasst werden.

            Beispiel:

            PHP-Code:


            $num 
            mysql_num_rows(mysql_query("SELECT id FROM tabelle"));
            echo 
            $num.' Datensätze<br /><br />';


            $sql mysql_query("SELECT * FROM tabelle WHERE id = '$id'  ORDER BY id DESC LIMIT $start$step");
            while(
            $ds=mysql_fetch_array($sql)){

            //AUSGABE


            Broesel

            Kommentar

            Lädt...
            X