Blättern in DB (PHP5)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by Broesel2000; 02-09-2007, 12: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 />'

    Comment


    • #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ß.

      Comment


      • #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]

        Comment


        • #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);
          ?>
          Last edited by Broesel2000; 02-09-2007, 13:12.
          Broesel

          Comment


          • #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

            Comment

            Working...
            X