PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : while in einer for



maik15
07-12-2005, 19:30
Hi!

Habe mal wieder ein Prob.
Ich will mir verschiedene Themen in verschiedenen Kategorieen ausgeben.

for($k = 0; $k <= $z; $k++) {
?>
<table>
<tr>
<td><?php echo mysql_result($result_kategory, $k, 'kat_name'); ?></td>
</tr>
<?php
while($row_forums = mysql_fetch_array($result_thema, MYSQL_BOTH)) {
if($row_thema['kat_id']==$k) {
?>
<tr>
<td>&nbsp;&nbsp;Hallo</td>
</tr>
<?php
}
}
?>
<tr>
<td></td>
</tr>
</table>
<?php
}

$z ist 3.
Das ausgeben der Kategorien und die 2 Hallo unter Kat 1 geht...
bloß der neue wert von $k bei dem 2., 3., usw durchlauf, der mit $k++ erhöht wird, ist in der schleife nicht eins höher sodern immer 0. warum das?

Versteht bestimmt keiner, wie ich das meine...

Gruß
Maik

Turbohummel
07-12-2005, 21:27
Du willst damit sagen, dass $k immer 0 ist?

Wenn ja: Definiere k mal außerhalb der For-Schleife (auf 0 setzen)

maik15
07-12-2005, 22:07
mir fällt da gerade eine andere möglichkeit ein...
Tabelle:


kat_id thema_name
0 a
0 b
1 c
3 d

Jetzt soll 'thema_name' ausgegeben werden, wenn 'kat_id' den wert x (0, 1, 2 usw...) hat.
Wie mache ich das?
Mir fällt da absolut nix ein!
Das ganze hau ich dann ich die for und dann sollte das doch gehen oda?

Wenn das nicht geht, werde ich es mit deinem bsp versuchen. aber so scheint es mir logischer.

Gruß
Maik

amc
09-12-2005, 10:05
lass doch deine themen schon im vorfeld in einem array zusammensetzen, weil
ich weiss ja nicht wo du das statement dafür absetzt, aber so hat er nach
dem ersten durchlauf kein resultat mehr in $result_thema.



<?
$forums = array();
while ($row_forums = mysql_fetch_array($result_thema, MYSQL_BOTH)) {
array_push($forums[$row_forums['kat_id']],$row_forums['thema_name']);
}
?>


dannach kannst du in der schleife der kategorien, das thema aus diesem array
beziehen:



<?
for ($i=0;$i<count($forums[$k]);$i++) {
print "<tr><td>".$forums[$k][$i]."</td></tr>";
}
?>