[PHP] pętla while w pętli while

0

Witam,
mam prostu kod który ma zrobić coś takiego:

baza1:
a
b
c

baza2:
A
B
C

Łączy te dwie bazy w taki sposób:

aA
aB
aC
bA
bB
bC
cA
cB
cC

Mój kod prezentuje się tak:

$sql_one = sql("SELECT * FROM VM_Imiona ORDER BY id");
$sql_two = sql("SELECT * FROM VM_Nazwiska ORDER BY id");

   $i=0;
	while($imiona = mysql_fetch_row($sql_one))
	{
            echo $imiona[1];
		while($nazwiska = mysql_fetch_row($sql_two))
		{
		   $imie[$i] = $imiona[1]." ".$nazwiska[1];
		   $i++;
		}
	}

print_r($imie);

sql to funkcja łączenia z bazą, ale problem jest taki że najpierw robi pętlę tej linijki:

            echo $imiona[1];

a dopiero potem resztę i wychodzi coś takiego:

aA
aB
aC
i koniec

Co mam zrobić by poprawnie wykonał pętlę? Jest późno może dlatego moja głowa nie pracuje.

0

no bo mysql_fetch_row zagnieżdżone wykona się tylko 3 razy bo tyle jest rekordów, a ty chciałeś żeby leciał od początku ? gdyby tak się zachowywała ta funkcja to ta wyżej by nigdy się nie skończyła i byś miał nieskończoną pętle

możesz przepisać wynik $sql_two do tablicy a potem jechać foreach:

$sql_two = ...
while($nazwiska = mysql_fetch_row($sql_two))
  $tablica[] = $nazwiska;

...

            foreach($tablica as $nazwiska)
            {
                $imie ...
...

poza tym mógłbyś to chyba zrobić jednym zapytaniem sql (ale wtedy mysql ma do przesłania dużo więcej danych do php i więcej pracy, chyba jednak lepiej to zostawić do zrobienia w php)
mi się wydaje czy ostatnio było takie samo pytanie

0


$sql_one = sql("SELECT * FROM VM_Imiona ORDER BY id");
$sql_two = sql("SELECT * FROM VM_Nazwiska ORDER BY id");

$i=0;
while($imiona = mysql_fetch_row($sql_one))
{
echo $imiona[1];
while($nazwiska = mysql_fetch_row($sql_two))
{
$imie[$i] = $imiona[1]." ".$nazwiska[1];
$i++;
}
mysql_field_seek($nazwiska,0);
}

print_r($imie);

i po sprawie ;) wystarczy tylko wejsc na manual php i sprawdzic jakie sa funkcje odpowiedzialne za wyniki zapytan SQL. Ja pierwszym lepszym strzalem znalazlem ta funkcje i zajelo mi to okolo 30 sekund... Tylko trzeba wiedziec gdzie szukac.

0

szybka poprawka. Pewnie gdzies jest prosty blad ale juz nietrudno sobie z nim poradzic...

0

no tak zapomniałem o tych funkcjach (pewnie dlatego że nigdy z nich nie korzystałem)
tylko że jak już to:

mysql_data_seek($nazwiska, 0);

bo jakoś nie widzę tutaj zastosowania dla mysql_field_seek

1 użytkowników online, w tym zalogowanych: 0, gości: 1