Autor | Zpráva | ||
---|---|---|---|
tammy Profil |
#1 · Zasláno: 24. 2. 2009, 19:11:48 · Upravil/a: tammy
ahoj,
jsem začátečník a potřeboval bych poradit s pro vás asi triviální záležitostí. Mám databázi,kde je 200 řádků.Potřeboval bych vypsat všech 200 hodnot z jednoho sloupce. $result = mysql_query("SELECT idjid FROM obednavky WHERE userid=$usrid && mesic=$dnmes"); - tento dotaz vrátí pouze jednu hodnotu v souvislosti s tím bych pak potřeboval prvést dotaz na databázi,který vyloučí řádky právě s těmi hodnotami,které mi vypsal předchozí dotaz. něco jako-$statis3 = mysql_query("SELECT `id`, `idmes`, `jidlo`, `cena`, DATE_FORMAT(`datum`, '%a %e %b %Y') AS `datum` FROM `jidelnicek_mem` WHERE mesic=$dnmes && id!=$idji1id!=$idji1-tohle by mělo být právě to vyloučení dotyčných řádků ORDER BY `id` asc") or die ("Chyba v SQL dotazu: " . mysql_error()); ikdyž se mi podaří dostat z prvního příkladu všech 200 čísel,potřeboval bych vědět,jak formulovat dotaz,abych ho nemusel psát 200krát. Mnohokrát děkuju za každou radu |
||
Kajman_ Profil * |
#2 · Zasláno: 24. 2. 2009, 19:45:38
Můžete např. použít left join a ty, co se nepodařilo připojit a neexistují v daných podmínkách, jsou ty pravé.
SELECT j.`id`, j.`idmes`, j.`jidlo`, j.`cena`, DATE_FORMAT(j.`datum`, '%a %e %b %Y') AS `datum` FROM `jidelnicek_mem` j left join `objednavky` o on j.`id`=o.`idjid` and j.`mesic`=o.`mesic` and o.`userid`=$usrid WHERE j.`mesic`=$dnmes and o.`idjid` is null |
||
tammy Profil |
#3 · Zasláno: 24. 2. 2009, 19:57:36
Děkuji,
ale abych řekl pravdu,moc tomu nerozumím.Když do mého dotazu vložím tyto řádky,nefunguje to vůbec.Mohu požádat o podrobnější výpis? |
||
Kajman_ Profil * |
#4 · Zasláno: 24. 2. 2009, 20:03:18
Tohle je celý dotaz.
|
||
tammy Profil |
#5 · Zasláno: 24. 2. 2009, 20:13:11
omlouvam se za zmatky.samozřejmě byla chyba zase u mě.Už mi to běží,jak má.Mnohokrát děkuji
|
||
tammy Profil |
#6 · Zasláno: 24. 2. 2009, 22:37:38
Mám ještě jeden dotaz,týkající se tohoto tématu.
Teď bych zase potreboval hromadně zapsat data do databáze.Mám 200 proměnných,ale jde o to,že některé jsou prázdné.Napsal jsem to takto(vím že je to dosti amatérské): if ($a2 != "") { $res2 = mysql_query("select * from jidelnicek_mem where idmes=$a2 && mesic=$dnmes"); $idjid = mysql_result($res2, 0, "id"); $datob = mysql_result($res2, 0, "datum"); $mesob = mysql_result($res2, 0, "mesic"); $jiob = mysql_result($res2, 0, "jidlo"); $ceob = mysql_result($res2, 0, "cena"); $resko2 = mysql_query("select * from obednavky where idjid=$idjid"); if (mysql_num_rows($resko2) == 0) { $res2 = mysql_query("insert into obednavky (idjid, idmes, userid, datum, mesic, jidlo, cena) values ('$idjid', '$a2', '$usrid', '$datob', '$mesob', '$jiob', '$ceob')") or die (mysql_error()); } } číslo za proměnnou $a určuje právě číslo proměnné.Když tohle opíšu 200krát a jenom zaměním číslo za $a,tak mi to funguje správně. Chci se zeptat,jestli by se našlo nějaké elegantnější řešení.Pokud to budu opisovat,zabere mi to ve scriptu 2600 řádků a budu to psát tři dny :-) Děkuju za odpověď |
||
Kajman_ Profil * |
#7 · Zasláno: 24. 2. 2009, 23:02:47
Proč nepoužijte konstrukci
insert into ... select ... ? |
||
tammy Profil |
#8 · Zasláno: 24. 2. 2009, 23:29:44
Tak to vůbec nevím,jak to v tomhle případě použít.
Jde asi hlavně o tu proměnnou...aby stačil jeden dotaz na databázi a zapsalo to do ní všechny hodnoty,které odešle určitý počet checkboxů(max.200) |
||
Kajman_ Profil * |
#9 · Zasláno: 25. 2. 2009, 09:04:15
|
||
Časová prodleva: 15 let
|
0