Autor | Zpráva | ||
---|---|---|---|
HGD Profil |
#1 · Zasláno: 25. 2. 2008, 19:23:24
mam takovej problémek, mam na straně:
$query=mysql_query("SELECT catid_wl_item,sid_wl_item,name_wl_item,ico_wl_item,pub_wl FROM ".$pref."_weblinks WHERE sid_wl_item IS NOT NULL"); while($data=mysql_fetch_assoc($query)){ $cat=mysql_fetch_array(mysql_query("SELECT name_wl_cat FROM ".$pref."_weblinks WHERE id_wl_cat='".$data['catid_wl_item']."'")); $icon=($data['ico_wl_item']==null)? "../style/NoIcon.png": $data['ico_wl_item']; echo '<tr align="center" id="'; echo ($i++ % 2) ?"sudy" :"lichy"; echo '"><td>'.$cat['name_wl_cat'].'</td> <td><img style="padding: 2px 0;" src="'.$icon.'"></td> <td>'.$data['name_wl_item'].'</td> <td><img src="../style/'; echo ($data['pub_wl']=="1")? "pubyes": "pubno"; echo'.gif"></td> <td> <a title="Upravit" href="index.php?component=weblink&edit_it='.$data['sid_wl_item'].'"><i mg src="../style/edit.gif"></a> <a title="Smazat" href="index.php?component=weblink&del_it='.$data['sid_wl_item'].'"><im g src="../style/delete.gif"></a> </td> </tr>'; } ale potřeboval bych to zjednodušit, aby se nezatěžovala DB, a newim jak na to Díky moc za rady |
||
ninja Profil |
#2 · Zasláno: 25. 2. 2008, 19:36:00
HGD:
1. Pastni sem az skutecny vygenerovany query na databazi, toto stezi nekdo rozlusti. 2. Priloz strukturu databaze, vcetne indexu. 3. Na prvni pohled je problem ze delas X dotazu do databaze misto pouze jednoho. Znas v SQL veci jako JOIN? |
||
HGD Profil |
#3 · Zasláno: 25. 2. 2008, 19:44:32 · Upravil/a: HGD
JOIN sem chtěl použít, ale neumim s nim pracovat, spíš ho teda nějak nechápu...
/* id_wl_cat = ID kategorie weblink pub_wl = publikace catid_wl_item = ID nadřazené kategorie sid_wl_item = ID položky */ $sql ="CREATE TABLE `".$pref."_weblinks` ( `id_wl_cat` SMALLINT, `name_wl_cat` VARCHAR(50), `popis_wl_cat` TEXT, `pub_wl` BOOL NOT NULL, `catid_wl_item` SMALLINT, `sid_wl_item` INT, `name_wl_item` VARCHAR(70), `url_wl_item` TEXT, `ico_wl_item` TEXT, `popis_wl_item` TEXT ); PS.: Je tam ..._cat což je kategorie weblinků a pak ..._item což sou samotný weblinky zařazený do kategorií, přitom je to ale v jedný tabulce, a já potřebuju vypsat název kategorie každý z linků. U každýho linku je catid_wl_item, což je stejné ID jako ID kategorie |
||
ninja Profil |
#4 · Zasláno: 25. 2. 2008, 20:00:56
HGD:
SELECT t1.*, t2.* FROM pref_weblinks t1 LEFT JOIN pref_weblinks t2 ON t1.catid_wl_item = t2.id_wl_cat; |
||
HGD Profil |
#5 · Zasláno: 25. 2. 2008, 20:09:10
nepochopil sem teda co mají bejt t1 a t2, jestli teda znamenají něco jinýho, ale script mi hází error
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in... což je: while($data=mysql_fetch_assoc($query)) |
||
ninja Profil |
#6 · Zasláno: 25. 2. 2008, 20:23:59
HGD: t1 a t2 jsou reference tabulky pref_weblinks. Vtip je v tom ze tabulku napojis samu na sebe pres catid_wl_item = id_wl_cat.
Jestli chces poradit tak sem musis dat vygenerovany SQL dotaz. |
||
HGD Profil |
#7 · Zasláno: 26. 2. 2008, 16:52:50
vypadne tohle, v proměnný $query:
mysql_query("SELECT t1.*,t2.* FROM loc_weblinks LEFT JOIN loc_weblinks t2 ON t1.catid_wl_item=t2.id_wl_cat WHERE t2.sid_wl_item IS NOT NULL "); ,kterou pak vypíšu: while($data=mysql_fetch_assoc($query)) |
||
ninja Profil |
#8 · Zasláno: 26. 2. 2008, 17:14:16
HGD: a vysledky na dotaz "SELECT t1.*,t2.* FROM loc_weblinks LEFT JOIN loc_weblinks t2 ON t1.catid_wl_item=t2.id_wl_cat WHERE t2.sid_wl_item IS NOT NULL" ti vyhovuji? Nebo to hazi error?
|
||
HGD Profil |
#9 · Zasláno: 26. 2. 2008, 17:19:30
hází error, konkrétně:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource |
||
Alphard Profil |
#10 · Zasláno: 26. 2. 2008, 17:27:22
tohle je k ničemu
sql chybu vypíšeš takto: echo mysql_error(); |
||
HGD Profil |
#11 · Zasláno: 26. 2. 2008, 18:10:09
no, tak už je to bez chyb, ale nic to nevypisuje
|
||
Kajman_ Profil * |
#12 · Zasláno: 26. 2. 2008, 19:44:26
HGD
Tak ukažte současnou verzi, ať je co opravovat. |
||
HGD Profil |
#13 · Zasláno: 26. 2. 2008, 20:14:23
$query=mysql_query("SELECT t1.*,t2.* FROM ".$pref."_weblinks t1 LEFT JOIN ".$pref."_weblinks t2 ON t1.catid_wl_item=t2.id_wl_cat WHERE t2.sid_wl_item IS NOT NULL "); // $query=mysql_query("SELECT catid_wl_item,sid_wl_item,name_wl_item,ico_wl_item,pub_wl FROM ".$pref."_weblinks WHERE sid_wl_item IS NOT NULL"); while($data=mysql_fetch_assoc($query)){ //$cat=mysql_fetch_array(mysql_query("SELECT name_wl_cat FROM ".$pref."_weblinks WHERE id_wl_cat='".$data['catid_wl_item']."'")); $icon=($data['ico_wl_item']==null)? "../style/NoIcon.png": $data['ico_wl_item']; echo '<tr align="center" id="'; echo ($i++ % 2) ?"sudy" :"lichy"; echo '"><td>'.$data['name_wl_cat'].'</td> <td><img style="padding: 2px 0;" src="'.$icon.'"></td> <td>'.$data['name_wl_item'].'</td> <td><img src="../style/'; echo ($data['pub_wl']=="1")? "pubyes": "pubno"; echo'.gif"></td> <td> <a title="Upravit" href="index.php?component=weblink&edit_it='.$data['sid_wl_item'].'"><i mg src="../style/edit.gif"></a> <a title="Smazat" href="index.php?component=weblink&del_it='.$data['sid_wl_item'].'"><im g src="../style/delete.gif"></a> </td> </tr>'; } |
||
Kajman_ Profil * |
#14 · Zasláno: 26. 2. 2008, 20:34:30
Nestačí
SELECT t1.*,t2.ico_wl_item from... ? |
||
HGD Profil |
#15 · Zasláno: 27. 2. 2008, 17:49:05
ať tak nebo tak, pořád to nic ale nevypisuje :(
|
||
Časová prodleva: 3 dny
|
|||
HGD Profil |
#16 · Zasláno: 1. 3. 2008, 15:59:38
mam tady ještě jede kus kodu na zjednodušení, ale newim zda to vůbec půjde... ?
$query=mysql_query("SELECT name_wl_cat,id_wl_cat,pub_wl FROM ".$pref."_weblinks WHERE id_wl_cat IS NOT NULL"); while($data=mysql_fetch_array($query)){ $q=mysql_result(mysql_query("SELECT COUNT(sid_wl_item) FROM ".$pref."_weblinks WHERE catid_wl_item='".$data['id_wl_cat']."'"),0); echo '<tr align="center" id="'; echo ($i++ % 2) ?"sudy" :"lichy"; echo '"><td>'.$q.'</td> <td>'.$data['name_wl_cat'].'</td> <td><img src="../style/'; echo ($data['pub_wl']=="1")? "pubyes": "pubno"; echo'.gif"></td> <td> <a title="Upravit" href="index.php?component=weblink&edit='.$data['id_wl_cat'].'"><img src="../style/edit.gif"></a> <a title="Smazat" href="index.php?component=weblink&delete='.$data['id_wl_cat'].'"><img src="../style/delete.gif"></a> </td> </tr>'; } |
||
Časová prodleva: 15 let
|
0