Autor | Zpráva | ||
---|---|---|---|
olech Profil * |
#1 · Zasláno: 13. 6. 2014, 10:48:28
Dobrý den,
mám násedující případ: tabulka KNIHY, tabulka CTENARI, tabulka PRECETLI KNIHY obsahuji nekolik sloupcu, důležit je nazev a id_knihy. CTENARI obsahuji nekolik sloupcu, důležitý je jmeno a id_ctenare KNIHY a CTENARI jsou M:N a tabulka PRECETLI má sloupce id_knihy, id_ctenare a rika nam, ktery čtnář přečetl jakou knihu. A řeším následující problém: tent kód $sql = "SELECT nazev, jmeno FROM KNIHY, CTENARI, PRECETLI WHERE KNIHY.id_knihy = PRECETLI.id_ctenare AND PRECETLI.id_herce = CTENARI.id_ctenare AND KNIHY.nazev like 'Ostrov'"; $result = mysql_query($sql,$db); if(mysql_num_rows($result)==0) echo "Nic nebylo nalezeno"; else{ while(list($a, $b) = mysql_fetch_array($result)){ echo "$a, $b"; } } Mi vypíše Ostrov, Petr Ostrov, Martina super, funguje to, ale potřebuji docílit toho, aby výpis byl jen: Ostrov, Petr, Martina Můžete mi někdo prosím poradit jak to udělat ? Já už na to asi nepřijdu... |
||
Chuchycek Profil |
V php, když to jen poupravím
$result = mysql_query($sql,$db); if(mysql_num_rows($result)==0) { echo "Nic nebylo nalezeno"; } else { $data = array(); while(list($a, $b) = mysql_fetch_array($result)) { $data[$a][] = $b; } foreach($data as $kniha => $precetl) { echo $kniha . ", " . implode(",", $precetl); } } |
||
olech Profil * |
#3 · Zasláno: 13. 6. 2014, 11:04:47
Skvěle, funguje!
Na to bych nepřišel, moje znalosti php jsou velmi malé, DÍKY! |
||
olech Profil * |
#4 · Zasláno: 13. 6. 2014, 12:11:00
No, vyvstal mi tu jeden malý problém, pokud v SELECTU v mém prvním příspěvku chci vybrat krom nazvu a jmena i autora knihy a dát to do konečného výpisu, kód proměnnou pro autora uplně ignoruje.
jakože mám: $sql = "SELECT nazev, jmeno, autor FROM KNIHY, CTENARI, PRECETLI WHERE KNIHY.id_knihy = PRECETLI.id_ctenare AND PRECETLI.id_herce = CTENARI.id_ctenare AND KNIHY.nazev like 'Ostrov'"; $result = mysql_query($sql,$db); if(mysql_num_rows($result)==0) { echo "Nic nebylo nalezeno"; } else { $data = array(); while(list($a, $b, $c) = mysql_fetch_array($result)) { $data[$a][] = $b; } foreach($data as $kniha => $precetl) { echo $kniha ." napsána: ".$c. ", " . implode(",", $precetl); } } co s tím? :( |
||
Chuchycek Profil |
Upravil bych SQL, ale budíž. Ale tahle úprava už není o znalosti jazyka. :-)
$result = mysql_query($sql,$db); if(mysql_num_rows($result)==0) { echo "Nic nebylo nalezeno"; } else { $data = array(); while(list($a, $b, $c) = mysql_fetch_array($result)) { $data[$a]['ctenari'][] = $b; $data[$a]['autor'] = $c; } foreach($data as $kniha => $info) { echo $kniha ." napsána: ".$info['autor']. ", " . implode(",", $info['ctenari']); } } |
||
olech Profil * |
#6 · Zasláno: 13. 6. 2014, 12:55:05
Díky, už jsem to zprovoznil trošku jinak, ale asi dost prasácky :D
|
||
juriad Profil |
#7 · Zasláno: 13. 6. 2014, 13:37:00
olech:
V podstatě jde o úlohu Nejčastější potíže s PHP (FAQ) » Nadpis skupiny nejen při výpisu z databáze. Lze to tedy řešit i bez nutnosti ukládání do jiného pole (ale naopak musíš přidat do dotazu ORDER BY). |
||
Časová prodleva: 11 let
|
0