kostenloser Webspace werbefrei: lima-city


Daten aus DB ausgeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hi !

    Ich habe hier ein Script, mit dem ich Datensätze aus meiner DB in 3 tag/reihe">Reihen ausgeben kann:

    <?php
    
    echo '<table border="0" width="40%">';
    $neue_zeile = 3;
    $ende_zeile = false;
    
    $result = mysql_query("SELECT * FROM rezepte WHERE kategorie = 'backrezepte';");
    while($rows = mysql_fetch_array($result))
    {
    
    if($neue_zeile==3) {
    echo '<tr>';
    $neue_zeile = 2;
    $ende_zeile = false;
    $abstand = true;
    } else
    if($neue_zeile==2) {
    $neue_zeile = 1;
    $ende_zeile = false;
    $abstand = true;
    } else
    if($neue_zeile==1) {
    $ende_zeile = true;
    $neue_zeile = 3;
    $abstand = false;
    }
    
    
    
    
    echo '<td style="width:30%"><table border="0" width="100%">';
    
    echo '<tr><td><img src="'.$rows['bild'].'" height="50px" /></td>';
    echo '<td><a href="rezept.php?zept='.$rows['rezeptname'].'">'.$rows['rezeptname'].'</a></td></tr></table></td>';
    
    
    if($abstand) echo '<td style="width:5%">&nbsp;</td>';
    
    
    if($ende_zeile) echo '</tr>';
    
    
    } // ende while
    
    
    
    echo '</table>';
    
    ?>


    Wenn ich ein neues Rezept eintrage, wird das ja immer am Ende angezeigt.

    Wäre es vielleicht möglich, die Rezepte alphabetisch zu sortieren?
    Also auch so in 3 Reihen

    Mfg David !
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c****s

    <?php
    echo '<table border="0" width="40%">';
    $result = mysql_query("SELECT * FROM rezepte WHERE kategorie = 'backrezepte' order by rezeptname;");
    $count = 0;
    while($rows = mysql_fetch_array($result))
    {
    	if ($count % 3 == 0) echo '<tr>';
    	echo '<td style="width:30%"><table border="0" width="100%">';
    	echo '<tr><td><img src="'.$rows['bild'].'" height="50px" /></td>';
    	echo '<td><a href="rezept.php?zept='.$rows['rezeptname'].'">'.$rows['rezeptname'].'</a></td></tr></table></td>';
    	echo ($count % 3 == 2) ? '</tr>' : '<td style="width:5%">&nbsp;</td>';
    	$count ++;
    }
    echo '</table>';
    ?>


    Das "order by" im SQL sortiert dir die Elemente. Das ganze $ende_zeile und $dingsbums_zeile hab ich auch mal rausgenommen. Sah ja ziemlich wüst aus.

    Beitrag zuletzt geändert: 30.7.2009 22:58:50 von census
  4. Hi,

    wenn ich dich richtig verstehe, dann reicht es, wenn du bereits die Sortierung in der sql Abfrage einbaust mit ORDER BY:

    $result = mysql_query("SELECT * FROM rezepte WHERE kategorie = 'backrezepte' ORDER BY [gewünschte Sortierspalte];");


    Gruß
    Manni
  5. c****s

    Noch etwas, falls die Anzahl der Rezepte nicht durch 3 teilbar ist, wird das ganze zwar noch richtig dargestellt, aber du hast kein valides HTML mehr, weil der </tr>-Tag fehlt. Um das zu vermeiden, solltest du nach der Schleife noch schauen in welcher Spalte du stehst und evtl die table row schließen:

    <?php
    echo '<table border="0" width="40%">';
    $result = mysql_query("SELECT * FROM rezepte WHERE kategorie = 'backrezepte' order by rezeptname;");
    $count = 0;
    while($rows = mysql_fetch_array($result))
    {
    	if ($count % 3 == 0) echo '<tr>';
    	echo '<td style="width:30%"><table border="0" width="100%">';
    	echo '<tr><td><img src="'.$rows['bild'].'" height="50px" /></td>';
    	echo '<td><a href="rezept.php?zept='.$rows['rezeptname'].'">'.$rows['rezeptname'].'</a></td></tr></table></td>';
    	echo ($count % 3 == 2) ? '</tr>' : '<td style="width:5%">&nbsp;</td>';
    	$count ++;
    }
    if ($count % 3 != 0) echo '</tr>';
    echo '</table>';
    ?>


    Beitrag zuletzt geändert: 30.7.2009 23:03:00 von census
  6. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Danke für eure Hilfe !
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!