Neue Tabellezeile bei while Schleife.

fmeyer84

Mitglied
Hallo,

mit folgender while Schleife lese ich eine Tabelle aus:

PHP:
 $query = "SELECT ordnerid, name FROM $db_ordner_tab";
 $result = mysql_query($query, $linkID);
 while ($row = mysql_fetch_array($result))
 {
 $ordnerid = $row['ordnerid'];
 $ordnername = $row['name'];
 $resultID = @mysql_query("SELECT COUNT(fileid) FROM $db_files_tab WHERE ordnerid='$ordnerid'", $linkID);
 $total_files = @mysql_result($resultID,0);
 }

Nun soll jeder Ordnername in einer Tabellezelle ausgelesen werden. Ich hab 20 Ordner, pro Tabellenzeile sollen jedoch nur 5 Ordner gezeigt werden, also quasi Ordner 1-5 in Zeile 1, Ordner 6-10 in zeile 2 usw.

Wie kann ich das bewerkstelligen?
 
Das Zauberwort heißt Modulo-Operator! Du lässt ne Zählvariable (zB $iCount) mitlaufen die du nach jedem durchgang 1 hochzählst. Am Anfang der Schleife guckst du dann ob $iCount % 5 == 0
 
1. Du solltest deine Abfrage überarbeiten, die kann man auch zusammenfassen..
2. Mittels einer Zählvariable und der Modulo-Teilung.
 
Hallo,

ich weiß zwar nicht, was eine "Modulo-Teilung" ist, aber ich habs so gelöst (geändert für ne Bilderauflistung):

<table width="100%" border="0" cellpadding="4" bgcolor="#FFFFFF">
<tr>
PHP:
<?
if (isset($_GET['ordnerid']))
{
	$ordnerid = $_GET['ordnerid'];
	$query = "SELECT fileid, pic_src, pic_src_small, ordnerid, date, beschreibung FROM $db_files_tab WHERE ordnerid='$ordnerid'";
	$result = mysql_query($query, $linkID);
         $i = 1;
         while ($row = mysql_fetch_array($result))
	{
		$fileid = $row['fileid'];
		$pic_src = $row['pic_src'];
                 $pic_src_small = $row['pic_src_small'];
                 $date = $row['date'];
                 $fileordnerid = $row['ordnerid'];
                 $beschreibung = $row['beschreibung'];
                 $resultID = @mysql_query("SELECT name FROM $db_ordner_tab WHERE ordnerid='$fileordnerid'", $linkID);
		$ordnername = @mysql_result($resultID,0);
                 echo "<td align=\"center\" valign=\"middle\"><a href=\"javascript:viewimage($fileid);\"><img src=\"$ordner_files/$ordnername/$pic_src_small\" border=\"0\"><br>$pic_src</a></td>";
		if ($i >= $bilder_pro_zeile)
                 {
                 echo("</tr><tr>");
                 $i = 0;
                 }
                 $i++;

	}
}
?>
</tr>
</table>

Was soll ich an dem Code überarbeiten? Wie zusammenfassen? Immer gerne dankbar für Codeverbesserungen :)

Grüße,
Fabian
 
Du machst im Prinzip nichts anderes, Modulo-Teilung ist Teilung mit Rest, der Operator bei PHP hierfür ist '%'.
 
Zurück