Autor Zpráva
tammy
Profil
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 *
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
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 *
Tohle je celý dotaz.
tammy
Profil
omlouvam se za zmatky.samozřejmě byla chyba zase u mě.Už mi to běží,jak má.Mnohokrát děkuji
tammy
Profil
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 *
Proč nepoužijte konstrukci

insert into ... select ...

?
tammy
Profil
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 *
Posílejte si ty checkboxy jako pole. Líp se Vám s tím bude pracovat, bude implode nad tím polem a pak jeden jediný dotaz insert into ... select ...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: