cykly

mám dva dotazy, z nich získávám data...jedny data ukazuju pomocí while
potřeboval aby při každým výpisu $row2[1] zkontroloval s druhým dotazem - tedy polem
něco vy smyslu tohodle


$select1 = mysql_query("SELECT * FROM `tabulka1`");
$row1 = mysql_fetch_row($select1);

$select2 = mysql_query("SELECT * FROM `tabulka2`");


while($row2 = mysql_fetch_row($select2);
{
if( $row1[1] == $row2[1]) { echo $row1[1]."ahoj"; }
else { echo $row2[3]; }
}

problém je že než načte druhý řádek, musí v tom prvním proměnnou s druhýho dotazu projít, pak půjde na druhý řádek a ten taky projde se všema polema z prvního dotazu...zkoušel jsem i foreach


while($row2 = mysql_fetch_row($select2);
{

foreach ($row1 as $pole)
{
if( $pole == $row2[1]) { echo $row1[1]."ahoj"; }
else { echo $row2[3]; }
}
}

vlastně to je vytáhnutí jednoho záznamu z jedný tabulky...a druhý dotaz který dá do pole řádek z duhý tabulky a ověřit jestli ten jeden záznam není roven některým záznamům v druhý tabulce...

ještě pro jistotu jinými slovy:-)

prvním sql dotazem udělám z jednoho řádku v tabulce pole, pak pomocí while vypisuju jinou tabulku...a já chci aby jeden záznam v řádku, který byl vypsán pomocí while byl zkontrolován polem, pokud bude roven vypsat něco jinýho, pokud nebude tak něco druhýho
Co si v cyklu uložit oba resultsety do pole a to pak srovnat?
jenže musím zkontrolovat řádek při výpisu while abych ho mohl změnit
Tyjo, to je dotaz do fóra nebo do logické soutěže matematické olympiády pro vysoké školy? Nevím z toho hlavu ani patu.
Udělej to celé v SQL...
a jak by to vypadalo jen SQL? jelikož si mylsím že to nejde
dotaz je na mě dost zmatený, ale možná ho jenom špatně čtu. Zkusím ho napřed zformulovat tak, jak tomu rozumím já a pak napíšu ten dotaz jak by mohl vypadat. Pokud to tak není tak zkus lidsky popsat, co v těch tabulkách je, co se porovnává.
Takže já to mu rozumím takto:
Mám dvě tabulky, v každé je jeden sloupeček, který má data, která se budou porovnávat (něco jako rodné číslo). Aby to bylo lidské, tak řekněme, že první tabulka je seznam lidí a ve druhé je seznam trestných činů k danému rodnému číslu. Výsledek tedy bude u každého člověka informace, jestli byl tresaný nebo ne. Dotaz by mohl vypadat takto:

select o.jmeno, o.prijmeni,
case
when t.trest_id is not null then 'trestan'
else 'bez skraloupu'
end as trestan
from obyvatel o
left join tresty t
group by o.jmeno, o.prijmeni, trestan

toto je jedno z mnoha řešení, dá se napsat i lépe, ale je to závislé na tom, co chceš z toho sql dostat, jak vypadají tabulky a td. Nemůžu tedy dotaz napsat tak, aby byl ideální pro tvůj případ.
já to zkusím prostudovat, najdu si o tom něco v knížce a zkusím to, kdyžtak se zeptám později, děkuju