Eine While-Schleife nachdem zwei Arrays eins geworden ist

Sleeper

Mitglied
Hallo zusammen.
Ich hatte vorher nur eine Datenbankabfrage und diese dann mit einer While-Schleife (mysql_fetch_array) ausgegeben.
Funktioniert auch wunderbar. aber jetzt brauche ich noch Daten aus einer zweiten Tabelle. Deshalb habe ich für jede Tabelle eine eigene Abfrage gemacht und dann jede jeweils in ein assoziertes Array geschrieben. Dann habe ich die beiden Arrays mit array_merge zu einem gemacht.
Jetzt habe ich ein assoziertes Array mit beiden Tabelleninhalten.

--------------------------------------------------
Das ist das was ich mir zusammen gebastelt habe.
Halt aus den Hinweisen im Forum.
PHP:
$abfrage1 = "SELECT * FROM Links1";
$result1 = mysql_query($abfrage1);
$abfrage2 = "SELECT * FROM Links2";
$resulta2 = mysql_query($abfrage2);

$a1 = mysql_fetch_array($result1,MYSQL_ASSOC);
$a2 = mysql_fetch_array($result2,MYSQL_ASSOC);
$a = array_merge ($a1, $a2);
-----------------------------------------------------
Aber wie kann ich jetzt eine While-Schleife durchlaufen lassen?

Weil wenn ich...
PHP:
while ($a = array_merge($a1,$a2)) {
echo '<table cellpadding=0 cellspacing=0 border='.$a['border'].'>';
echo '<tr>';
echo '<td style=background-color:#'.$a['bgcolor'].';><a href='.$a['address'].' style=text-decoration:none;color:#'.$a['color'].';font-size:'.$a['size'].'px;font-family:'.$a['family'].';>'.$a['lname'].'</a></td>';
echo '</tr>';
echo '</table>';
...das so mache, durchläuft er die schleife unendlich bis es zur folgenden Fehlermeldung kommt:
Fatal error: Maximum execution time of 30 seconds exceeded in f:\localserver\www\test.php on line 24
(Line 24 ist echo '</tr>';)

Kann mir jemand da weiterhelfen?
Besten Dank im vorraus.

Gruß,
Sleeper
 
-

Tue dir selbst einen Gefallen und benutz lieber einen Query, um die Daten aus der Datenbank zu holen. Dann brauchst du nicht den Weg über 2 Schleifen zu gehen.
PHP:
$sql = "Select Distinct * from Links1, Links2";
Dann kannst du alle Informationen wie bisher aus einem RecordSet rausholen.
 
Nur mal zum Verstehen:
Aber was ist denn, wenn ich mal nur bestimmte Felder aus den jeweiligen Tabellen haben möchte oder nur bei einer die Abfrage mit z.B. WHERE lmsm='1' erweiterst.

Gruß
 
Das kann doch nicht funktionieren:
while ($a = array_merge($a1,$a2)) {
Mit array_merge hängst Du die Daten eines Arrays an die Daten eines anderen Arrays an. In der Bedingung Deiner while-Schleife wird niemals FALSE zurückgegeben werden können. Um ein Array zu durchlaufen nimmst Du am Besten eine Zählergesteuerte-Schleife:
PHP:
$a = array_merge($a1,$a2);
for ($i = 0; $i < count($a); $i++) {
  echo $a[$i];
  ...
}

mfg, snuu
 
Aber wenn ich mal zum Testen

$a = array_merge($a1,$a2);
print_r($a);

eingebe, listet er mir doch alles auf.
Nur benutzen tut er halt nicht.
 
Zurück