Andreas: Daten von MySQL 3-Spaltig ausgeben

Hallo,
ich will Daten von MySQL 2-Spaltig ausgeben.
Habe versucht in einer For-Schleife das zu machen, aber ich bräuchte so was wie ein Step 3, damit ich pro Durchgang in der For-Schleife 3 Werte bekomme. Aber das funktioniert nicht. Wer kann mir weiterhelfen wie ich das realisieren kann?

Gruß Andreas

  1. Hallo,
    ich will Daten von MySQL 2-Spaltig ausgeben.
    Habe versucht in einer For-Schleife das zu machen, aber ich bräuchte so was wie ein Step 3, damit ich pro Durchgang in der For-Schleife 3 Werte bekomme. Aber das funktioniert nicht. Wer kann mir weiterhelfen wie ich das realisieren kann?

    Gruß Andreas

    sobald mein orakel mir deinen code geweissagt hat, damit ich dein problem begreife meld ich mich wieder...
    Zwomble

    1. Hallo,
      guter Gag, mach ich auch ab und zu. Ich nehme als die Variante dass die Kristallkugel grad vom Tisch gefallen sei.

      sobald mein orakel mir deinen code geweissagt hat, damit ich dein problem begreife meld ich mich wieder...

      Aber zum Thema.
      Hier der Code den ich bislang habe:
      // Die Einträge aus der Datenbank holen
      $sql_booklist = $SQL->putquery("SELECT * FROM tbbooklist ORDER BY Thema");
      print "<blockquote>\n";
      print "<TABLE WIDTH="100%" CELLPADDING="3" CELLSPACING="1" BORDER="0">\n";
      print "<tr><td width="800">\n";
      $total_books = ( mysql_numrows($sql_booklist) );
      for ( $i = 0 ; $i < $total_books ; $i++ ){
       $bk_ASIN1 = mysql_result($sql_booklist,$i,"ASIN");
       $bk_pic1 = mysql_result($sql_booklist,$i,"pic");
       print "<A HREF="http://www.amazon.de/exec/obidos/ASIN/$bk_ASIN1/accessomaniaf-21">\n";
       print "<IMG SRC="$bk_pic1" border="0" alt="cover"></A>   \n";
      }
      print "</td>\n";
      print "</TR>\n";
      print "</TABLE><P>\n\n";

      Dabei werden einfach alle Bilder hintereinander angezeigt.
      Ich möchte aber das in einer Tabelle haben, mit z.B. 5 Spalten.
      D.H. ich müsste pro For-Schleifen-Durchgang 5x die Werte von MySQL einlesen.

      Mir Fehlt im Moment der zündende Gedanke wie ich das machen kann.
      Vieleicht hast du eine Gute Idee.

      Gruß Andreas

      1. hi,

        Ich möchte aber das in einer Tabelle haben, mit z.B. 5 Spalten.
        D.H. ich müsste pro For-Schleifen-Durchgang 5x die Werte von MySQL einlesen.

        moment, möchtest du jetzt alle bilder auf einer seite haben, und diese in fünf spalten anzeigen - oder suchst du vielleicht eher sowas wie eine "blättern"-funktion, wo jeweils X bilder auf jeder seite angezeigt werden, mit "vor" und "zurück"-links?

        gruss,
        wahsaga

        1. Hallo,
          danke für die Antwort.
          Habs mit eurer Hilfe wieder einmal hinbekommen.

          moment, möchtest du jetzt alle bilder auf einer seite haben, und diese in fünf spalten anzeigen - oder suchst du vielleicht eher sowas wie eine "blättern"-funktion, wo jeweils X bilder auf jeder seite angezeigt werden, mit "vor" und "zurück"-links?

          Nein, mir reichte schon die ganz normale Darstellung in einer Tabelle.

          Gruß Andreas

      2. versuchs mal so:

        for ( $i = 0 ; $i < $total_books ; $i++ ){
         $zahler++;
        if($zahler == 5){
             $zaehlöre = 0;
             print "</td></tr>\n<tr><td>";
             }
        $bk_ASIN1 = mysql_result($sql_booklist,$i,"ASIN");
         $bk_pic1 = mysql_result($sql_booklist,$i,"pic");
         print "<A HREF="http://www.amazon.de/exec/obidos/ASIN/$bk_ASIN1/accessomaniaf-21">\n";
         print "<IMG SRC="$bk_pic1" border="0" alt="cover"></A>   \n";
        }

        1. Hallo,
          danke auch dir für die Antwort.
          Habs mit eurer Hilfe wieder einmal hinbekommen.

          Gruß Andreas

  2. hi,

    ich will Daten von MySQL 2-Spaltig ausgeben.
    Habe versucht in einer For-Schleife das zu machen, aber ich bräuchte so was wie ein Step 3, damit ich pro Durchgang in der For-Schleife 3 Werte bekomme.

    wat denn jetz? _zwei_ oder _drei_ werte ...?

    und wie hast du dir das mit den "spalten" vorgestellt, tabelle, css-container, ...?

    im grunde ist es ganz einfach, lasse wie üblich eine schleife über die ergebnismenge laufen, und führe einen zähler mit, der dir sagt wann du beim erste, zweiten oder dritten element angekommen bist. nach dem dritten wieder auf null setzen, und zwischendrin "entsprechend" reagieren (also z.b. <td> und <tr>öffnen bzw. schliessen, wo nötig).

    gruss,
    wahsaga

    1. Hallo,
      die Spaltenanzahl ist nicht so wichtig, mir gehts grad nur darum wie ich das generell machen kann.
      Deinen Tip verstehe ich an sich schon, nur wie setze ich das in Code um?
      Gruß Andreas

  3. Müßte funktionieren:

    $numcols = 3; // 3 Spalten

    echo "<table>";

    for ($i = 0; $i < $total_books;  )
        {
         echo "<tr>";

    for ($j=0;$j<$numcols;$j++)
         {
          echo "<td>";
          if ($i < $total_books)
          {

    //Print goes here...
           $bk_ASIN1 = mysql_result($sql_booklist,$i,"ASIN");
            $bk_pic1 = mysql_result($sql_booklist,$i,"pic");
            print "<A HREF="http://www.amazon.de/exec/obidos/ASIN/$bk_ASIN1/accessomaniaf-21">\n";
            print "<IMG SRC="$bk_pic1" border="0" alt="cover"></A>   \n";

    $i++;
          }
          else
          {
           echo " "; //Damit die Zelle auch leer mit Rahmen angezeigt wird...
          }
          echo "</td>";
         }

    echo "</tr>";
        }

    echo "</table>";

    1. Hallo,
      danke für die Antwort.
      Habs mit eurer Hilfe wieder einmal hinbekommen.

      Gruß Andreas