Autor | Zpráva | ||
---|---|---|---|
michelloster Profil |
#1 · Zasláno: 26. 10. 2008, 00:55:34
Zdarec.
Mám následující dotaz: $cist1 = mysql_query("SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id='1' ORDER BY object_id DESC LIMIT 60"); while($data1 = mysql_fetch_array($cist1)) { $final1 = mysql_query("SELECT ID, post_title FROM wp_posts WHERE ID='$data1[object_id]' AND post_status='publish' ORDER BY ID DESC LIMIT 6"); while($vypis1 = mysql_fetch_array($final1)) { echo".....tady se to vypisuje...."; } } Jde o to, že potřebuji z jedné tabulky načíst hodnotu záznamů ve sloupci object_id, kde term_taxonomy_id je 1. V druhém dotazu potřebuji načíst z tabulky wp_posts hodnoty ve sloupcích ID, post_title u posledních 6-ti záznamů, kde se ID rovná object_id načteným v prvním dotazu. Problém je v tom, že se nenačte jen těch posledních 6 záznamů jak potřebuji, ale všechny, který vyhovují tomu prvnímu dotazu. To bude nejspíš tím, že ten druhej dotaz se pořád opakuje a ten limit 6 se vztahuje jen k tomu druhému záznamu, takže v podstatě říká že se vybere maximálně 6 záznamů, kde ID= object_id z prvního dotazu a post_status=publish. Ovšem já potřebuji aby se celkově z toho druhého dotazu vybralo jen 6 záznamů a né aby se ten limit vztahoval jen ke každému object_id z načtenému z prvního řadku. Prostě aby z těchle dvou dotazů vylezlo dohromady max. 6 nejnovějších záznamů, o to mi jde. Snad mi aspoň částečně rozumíte, nejsem moc dobrej na vysvětlování :). Každopádně tohle se celkem špatně vysvětluje. Jo a ten limit 60 je tam jen proto, že pravděpodobně každej desátej záznam z toho prvního dotazu vyhovuje té podmínce term_taxonomy_id =1, takže nechci zbytečně zatěžovat databázi tím, že budu zbytečně všechno načítat. Chápu, že celej ten dotaz je dost lajdácky napsanej a že třeba ten limit 60 je taky dost amaterskej, tak doufám, že vás napadne něco lepšího, jak to řešit. Předem díky. |
||
Alphard Profil |
#2 · Zasláno: 26. 10. 2008, 10:30:12
snad nějak takhle
$result = mysql_query ("select p.ID, p.post_title from wp_term_relationships t join wp_posts p on p.ID = t.object_id where p.post_status = 'publish' and t.term_taxonomy = '1' order by t.ID desc limit 6"); while ($line = mysql_fetch_array ($result)) { // ... } |
||
michelloster Profil |
#3 · Zasláno: 27. 10. 2008, 18:55:51 · Upravil/a: michelloster
„snad nějak takhle“
„$result = mysql_query ("select p.ID, p.post_title from wp_term_relationships t join wp_posts p on p.ID = t.object_id where p.post_status = 'publish' and t.term_taxonomy = '1' order by t.ID desc limit 6");“ „while ($line = mysql_fetch_array ($result))“ „{“ „// ...“ „}“ Bohužel :( Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource Ale i tak díky za snahu. Nějaký jiný návrh? |
||
Alphard Profil |
#4 · Zasláno: 27. 10. 2008, 19:46:21
vypiště si chybu
echo mysql_error(); |
||
michelloster Profil |
#5 · Zasláno: 27. 10. 2008, 21:59:52
Tak už to běží parádně. Chybka byla v tom, že místo term_taxonomy má být term_taxonomy_id a pak v tom order by t.ID má být nejspíš p.ID (to nevím jistě, ale když jsem to t vyměnil za p tak to fungovalo správně :))
Každopádně Ti, Alpharde, moc děkuji, ani nevíš, jak jsi mi pomohl :) Kdybys náhodou něco potřeboval, tak se určitě ozvi. :) |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0