Blätterfunktion - MySQL

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

  • Blätterfunktion - MySQL

    Hallo Boardies....

    Seit ca 2 Tagen experimentiere ich an einer Blätterfunktion.

    ProblemFall:
    Auslesen einer Datenbank
    Navigation hinzufügen
    Ausgabe über mehrere Fenster.

    Mein Lösungsansatz (welcher nicht ganz funktioniert)
    Config-Datei
    PHP-Code:
    <?
    // Configurationsdatei
    // Hier die wichtigsten Daten rein
    // 1.) Datenbank-Verbindung
     $MYSQL_HOST = "localhost";   /* Hostname ist meist localhost      */
     $MYSQL_USER = "root";            /* Datenbank Benutzer Name           */
     $MYSQL_PW   = "";            /* Datenbank Passwort                */
     $MYSQL_DB   = "chat";            /* Name der Chat Datenbank           */
     $grinsegesichter = 4;        /* Anzahl der Smilies in einer Reihe */
    // 2.) Wieviele Smilies pro Seite
     $start = 0;                  /* Startzahl - keine Änderung */
     $begrenzer = 32;             /* Begrenzer - voreingestellt sind nach Größe 32 Smilies pro Fenster */

    // 3.) Datenbankverbindung aufbauen
    $db = mysql_connect ($MYSQL_HOST,$MYSQL_USER,$MYSQL_PW);
    mysql_select_db ($MYSQL_DB);

    ?>
    Dann meine Bin-Datei

    PHP-Code:
    <?php
     
    require("config.php");
     
        
    $id=$_GET['id'];
        
    $query "select body,mime_type from pcpin_binaryfile where id=$id";
        
    $result = @MYSQL_QUERY($query);
        
    $data = @MYSQL_RESULT($result,0,"body");
        
    $type = @MYSQL_RESULT($result,0,"mime_type");
        
    Header"Content-type: $type");
        

        echo 
    $data;
    ?>
    meine Abrufdatei, welche zum Darstellen der Smilies dient:

    PHP-Code:
    <?php
     
    require("config.php");

    ?>

    <html>
      <head>
        <style type="text/css">
          body {
            background-color: #353a3d;
            color: #ffffff;
          }
        </style>
      </head>
    <body>
    <img src="smilie-box-dfa.jpg" align="center" border="0" alt="Unsere Smilie-Box">
    <table cellspacing="0" cellpadding="0" width="100%">
    <tr>
    <?php
    $seite 
    $_GET["seite"];  //Abfrage auf welcher Seite man ist
    if(!isset($seite))
       {
       
    $seite 1;
       }

     
    $guckst_du 0;
     
    $conn mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PW);
     
    mysql_select_db($MYSQL_DB$conn);


     
    $smilies mysql_query("SELECT * FROM `pcpin_smilie` LIMIT $start$begrenzer ");

     while(
    $row mysql_fetch_assoc($smilies)) {
     echo 
    "<td style=\"text-align:center\" title=\"";
     echo 
    htmlspecialchars($row[code]);
     echo 
    "\"><img src=\"bin.php?id=$row[binaryfile_id]\" width=\"42\" height=\"40\"
     onclick=\"window.opener.document.jp_textarea.main_input_textarea.
    value=window.opener.document.jp_textarea.main_input_textarea.value+' "
    ;
     echo 
    htmlspecialchars($row[code]); echo " ';\"><br />";
     echo 
    "</td>";
     
    $guckst_du++;
     if(
    $guckst_du==$grinsegesichter) {
       echo 
    "</tr><tr>";

       
    $guckst_du 0;
     } };

    ?>
    <?

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

    $result = mysql_query("SELECT id FROM pcpin_smilie");
    $menge = mysql_num_rows($result);
    //Errechnen wieviele Seiten es geben wird
    $wieviel_seiten = $menge / $begrenzer;
    ?>
    </tr>
    <p>
      <tr bgcolor="#E0E0E0">
        <td colspan="8" nowrap align="center">
          <?  //Ausgabe der Seitenlinks:
    echo "<div align=\"center\">";
    echo "<b><span style=\"color:#000000;\">Seite:</span></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 "  <i>$b</i> ";
          }

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


       }
    echo "</div>";
    ?></td>
      </tr>
    </table>
    </body>
    </html>
    Die Abfrage funktioniert, die Navigation wird auch angezeigt,
    sobald ich aber die seite 2 anklicke, geht das nicht weiter... er lässt nur immer die seite 1 anzeigen.

    Würde mich über Tipps & Ratschläge freuen,

  • #2
    In deiner sog. "Aufrufdatei" definierst du $start nicht!

    Bitte lies auch unsere Regeln, durch das befolgen selbiger kannst du solch elementare Fehler schnell selbst erkennen.

    Kommentar


    • #3
      dann wäre ....

      [QUOTE=TobiaZ;648331]In deiner sog. "Aufrufdatei" definierst du $start nicht!

      ich habe das jetzt noch mal geguckt, also start habe ich definiert....

      zumindest in der sql-abfrage...

      sollte der $start auch in der link-Abfrage rein,
      und wenn ja, wie stelle ich das an ...

      danke der hilfe
      Zuletzt geändert von gsc2010; 21.11.2010, 21:53.

      Kommentar


      • #4
        Bitte gib dir in bisschen mehr Mühe? Das versteht ja kein Mensch.

        IN einer SQL-Query kannst du keine PHP-Variablen definieren. Deine Aussage ist also Unsinn.

        Bitte lies zunächst die Regeln (Link auch in meiner Signatur) und poste dann noch mal den aktuellen Code. (die "Bin"-Datei gibt doch nur Bilder aus, die hat also gar nichts mit dem Problem zu tun, oder?)

        Kommentar


        • #5
          Hallo,

          @TobiaZ
          $start wurde in der config-datei definiert. Da hast du gsc2010 falsch verstanden er hat gemeint das er in der sql-abfrage ein Limit drin hat.

          @gsc2010
          wenn du auf die zweite Seite gehts sendest du zwar mit
          PHP-Code:
          echo "  <a href=\"?seite=$b\">$b</a>"
          [COLOR=#000000][COLOR=#006600]
          [/COLOR][/COLOR]das du auf die zweite seite gehst aber bei der sql-abfrage [COLOR=#000000][COLOR=#006600]
          [/COLOR][/COLOR]
          PHP-Code:
          $smilies mysql_query("SELECT * FROM `pcpin_smilie` LIMIT $start$begrenzer "); 
          [COLOR=#000000][COLOR=#006600]
          [/COLOR][/COLOR]änderst du nicht ab welchem datensatz du nun anfängst auszulesen. ($start bleibt auf 0). Also liest du wieder die datensätze von 0 bis 32 aus.

          Kommentar


          • #6
            Zu diesem Thema kann ich ne ganz einfache Klasse empfehlen:
            Simple PHP/MySQL Pagination
            Pierre Voit ( Freelancer seit 2004 )

            Kommentar


            • #7
              Oder du schaust dir das hier mal an.

              Peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar

              Lädt...
              X