cykly
7 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
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