while & for Schleife kombinieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abschnitt
array
code
cursor
date
datenmenge
datensatz
datum
ergebnis
fehlen
gefahr
inhalt
jemand
message
problem
schleife
schleifen
sinn
target
zahl
-
Hallo Zusammen,
Ich habe gerade ein Problem mit 2 Schleifen.
Ich möchte in der einen Schleife eine andere Schleife öffnen. Allerdings hier erstmal der Code:
<?php for ($i=0; $i < 3; $i++) { while($get_msg_data_array = $get_msg_data->fetch_array()){ $sender_id = $get_msg_data_array['user_id']; $get_msg_sender_data = $db->query("SELECT * FROM users WHERE id='$sender_id'"); $get_msg_sender_data_array = $get_msg_sender_data->fetch_array(); ?> <li> <a href="#" data-toggle="modal" data-target="#myModal<?php echo $i; ?>"> <div> <strong><?php echo $get_msg_sender_data_array['username']; ?></strong> <span class="pull-right text-muted"> <em><?php echo $get_msg_data_array['date']; ?></em> </span> </div> <div><?php echo $get_msg_data_array['message']; ?></div> </a> </li> <li class="divider"></li> <?php } } ?>
Der Sinn dabei soll sein das im Quelltext 3 Abschnitte erscheinen mit der jeweiligen data-target="#myModal0-2"
Wo jeweils bestimmter Inhalt drin reingeladen wird per Whileschleife.
Nun das Problem das ich jetzt habe ist das der Code oben zwar geht allerdings gibt es im Quelltext nur das datatareg mit 0 und 1 & 2 fehlen jeweils.
Wenn ich zuerst die Whileschleife ausführe und dann die For Schleife, habe ich zwar meine Zahlen, allerdings fehlt dann der Inhalt/ist Fehlerhaft.
Hat jemand eine Idee?
LG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das Problem an dieser Stelle ist, dass bei $i=0 mit $get_msg_data->fetch_array() jeweils der nächste Datensatz ausgewählt wird bis keine Datensätze mehr übrig sind. Dann sind bei $i=1 erst recht keine Daten mehr übrig und genauso bei $i=2.
Ich würde also erst ein Array erstellen und darein die Ergebnisse der Anfrage laden und es dann dreimal ausgeben. Wenn die Gefahr besteht, dass die Datenmenge für das Array zu groß ist (oder generell als Alternative) könnte man auch versuchen den "Datenbank-Cursor" am Ende der While-Schleife zurückzusetzen, sodass die Daten beim nächsten $i wieder von vorne gelesen werden.
Beitrag zuletzt geändert: 14.9.2014 23:04:38 von masysma -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage