Dynamische Tabellen mit 4 Spalten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dynamische Tabellen mit 4 Spalten

    Erst einmal HALLO an alle da ich ja NEU hier bin!

    Nun bin PHP und MySQL Newbie und habe folgendes Problem:

    ... ich möchte auf einer PHP-Seite Bilder und andere Daten darstellen die aus einer [coderwiki]Informationen/MySQL[/coderwiki] ausgelesen werden. Soweit so gut, dabei sollen aber z.B. 4 Bilder nebeneinander = also in 4 Spalten horizontal angezeigt werden und z.B. 20 Spalten vertikal, also nach unten!

    Ich habe folgenden Schnipsel im Netz gefunden:

    Quellcode

    1. //Anzahl Spalten der Tabelle
    2. $SPALTEN = 4;
    3. echo "<table border=\"0\">\n </tr>\n";
    4. for ($num = 0; $num <= 19; $num++)
    5. {
    6. if ($num % $SPALTEN == 0 && $num > 0)
    7. {
    8. // Neue Zeile beginnen
    9. echo " </tr>\n </tr>\n";
    10. }
    11. echo " <td><a href='model-detail.php?id=$erg[id]'><img src='bilder/kl-$ergtmp[datei]' border='0' width='98' alt='Zur Setcard'></a><br> $erg[modelname]</td>\n";
    12. }
    13. //Ganz wichtig: Die Tabelle könnte noch unvollständig sein.
    14. // D.h.: Wir haben 3 Spalten in der aktuellen zeile aber nur 2
    15. // Einträge. Das wird hier gefixt.
    16. if ($num % $SPALTEN != 0)
    17. {
    18. echo " <td colspan = \"". ($num % $SPALTEN) ."\">&nbsp;</td>\n";
    19. }
    20. echo " </tr>\n";
    21. echo "</table>";
    Alles anzeigen




    Das hier ist mein MySQL:

    Quellcode

    1. $res=mysql_query("select * from models where geschlecht like '%$_GET[geschlecht]%' and ort like '%$_GET[staedte]%' and freigeschaltet>0 ORDER BY RAND() LIMIT 0,20");
    2. while($erg=@mysql_fetch_assoc($res))
    3. {
    4. //Models auflisten
    5. $restmp=mysql_query("select id,datei from bilder where user_id=$erg[id] and freigeschaltet>0 ORDER BY RAND() LIMIT 0,20");
    6. $ergtmp=mysql_fetch_assoc($restmp);
    7. if (empty($ergtmp[datei])) $ergtmp[datei]="empty.gif";
    8. $alter=date("Y")-$erg['jahr'];
    9. $verfuegbarin=$erg['verfuegbarin'];
    10. $stadt=$erg['ort'];



    Wo muss ich den MySQL in obigen Schnipsel einsetzen dass spalten- und zeilweisen wie folgt die Bilder u.a. anderen Daten angezeigt werden wie:

    Bild 1 | Bild 2 | Bild 3 | Bild 4

    Bild 5 usw.

    bis maximal z.B. 20 Datensätze?



    Bei meinem test hat es nicht das gewünschte Ergebnis gebracht da in jeder Spalte 4x das gleich Bild angezeigt wird:
    Bilder
    • schnipsel.jpg

      68,35 kB, 768×576, 2.506 mal angesehen
    Grüsse nixblick
  • Willkommen an Bord nixblick,

    du musst entweder mit einem mehrdimensionalen [coderwiki]Informationen/Array[/coderwiki] arbeiten ($erg[$i++]['id']) oder du verwendest die sql schleife eben statt der for()

    Quellcode

    1. //SQL
    2. $res=mysql_query("select * from models where geschlecht like '%$_GET[geschlecht]%' and ort like '%$_GET[staedte]%' and freigeschaltet>0 ORDER BY RAND() LIMIT 0,20");
    3. //Anzahl Spalten der Tabelle
    4. $SPALTEN = 4;
    5. $num=0;
    6. echo "<table border=\"0\">\n </tr>\n";
    7. while($erg=@mysql_fetch_assoc($res))
    8. {
    9. //Models auflisten
    10. $restmp=mysql_query("select id,datei from bilder where user_id=$erg[id] and freigeschaltet>0 ORDER BY RAND() LIMIT 0,20");
    11. $ergtmp=mysql_fetch_assoc($restmp);
    12. if (empty($ergtmp[datei]))
    13. $ergtmp[datei]="empty.gif";
    14. /* benötigt?
    15. $alter=date("Y")-$erg['jahr'];
    16. $verfuegbarin=$erg['verfuegbarin'];
    17. $stadt=$erg['ort']; */
    18. if ($num % $SPALTEN == 0)// Neue Zeile beginnen
    19. echo " </tr>\n </tr>\n";
    20. echo " <td><a href='model-detail.php?id=$erg[id]'><img src='bilder/kl-$ergtmp[datei]' border='0' width='98' alt='Zur Setcard'></a><br> $erg[modelname]</td>\n";
    21. $num++;
    22. }
    23. // Ganz wichtig: Die Tabelle könnte noch unvollständig sein.
    24. // D.h.: Wir haben 3 Spalten in der aktuellen zeile aber nur 2
    25. // Einträge. Das wird hier gefixt.
    26. if ($num % $SPALTEN != 0) {
    27. echo " <td colspan = \"". ($num % $SPALTEN) ."\">&nbsp;</td>\n";
    28. }
    29. echo " </tr>\n";
    30. echo "</table>";
    Alles anzeigen