Datenbankabfrage - mehrere Daten in eine Tabellenzeile

Divo1984

Erfahrenes Mitglied
Hallo,

ich habe eine Datenbanktabelle mit mehreren Zeilen.

ich verwende zur Zeit folgende Abfrage:

PHP:
echo"
<table><tr><td>Smilies</td></tr>";

	$sql=mysql_query("SELECT * FROM smilies");
	while($smilies=mysql_fetch_assoc($sql))
	{
		echo"<tr><td>$smilies['img']</td><td>$smilies['img']</td></tr>";
 	}
echo"
</table>";

wie ganz klar zu erwarten ist, wird mir hier in der Tabelle, zweimal das selbe Zeichen ausgegeben! Ich möchte jetzt aber gern, das mir mir in Spalte 2 der Reihe, das Ergebnis der Reihe 2 aus der DB ausgegeben wird - hat jemand ne Idee?
 
Versuch es mal damit:
PHP:
<?php
echo '<table><tr><td colspan="2">Smilies</td></tr>'; 

$sql = mysql_query( 'SELECT img FROM smilies' );

$i = 1;
while( $smilies = mysql_fetch_assoc( $sql ) ) {
    if ( $i === 1 ) {
        echo '<tr><td>'.$smilies['img'].'</td>';
        $i--;
    } else {
        echo '<td>'.$smilies['img'].'</td></tr>';
        $i++;
    }
}

if ( $i === 0 ) {
    echo '<td>&nbsp;</td></tr>';
}

echo '</table>'; 
?>

mfg
 
Zuletzt bearbeitet:
Vielen Dank, klappt wunderbar! Jetzt würde ich das Ganze aber mehrmals brauchen, soll heißen 10 Ausgaben pro Zeile - ginge das auch?
 
Ja, dass geht auch:
PHP:
<?php
echo '<table><tr><td colspan="10">Smilies</td></tr>';

$sql = mysql_query( 'SELECT img FROM smilies' );

$i = 1;
while( $smilies = mysql_fetch_assoc( $sql ) ) {
    if ( $i === 1 ) { // erster Smilie der Zeile
        echo '<tr><td>'.$smilies['img'].'</td>';
        $i++;
    } elseif ( $i === 10 ) { // letzer Smilie der Zeile
        echo '<td>'.$smilies['img'].'</td></tr>';
        $i = 1;
    } else { // Smilie 2 bis max 9 der Zeile
        echo '<td>'.$smilies['img'].'</td>';
        $i++;
    }
}

if ( $i > 1 && $i < 10 ) {
    echo '<td'.(
        $i !== 9 ? ' colspan="'.( 10 - $i ).'"' : ''
    ).'>&nbsp;</td></tr>';
}

echo '</table>';
?>

mfg
 
Zurück