Autor | Zpráva | ||
---|---|---|---|
anione Profil |
Dobrý den,
Měl bych jednu menší otázku: Chci vypsat poslední článek v kategorii na hlavní stránce. Mám 3 tabulky: kategorie, slozka a clanky. V tabulce clanky mám vždy čas vytvoření. Podle toho to pak řadím, Potřebuji spojit do while 2 zápisy: $slozkarow = mysql_fetch_assoc($slozkaresult) a $clankycrow = mysql_fetch_assoc($clankyresult) Zkoušel jsem to pomocí and, ale nefungujete to: while($slozkarow = mysql_fetch_assoc($slozkaresult) and $clankycrow = mysql_fetch_assoc($clankyresult)) ) php kod... ); Děkuji za rady. |
||
pcmanik Profil |
anione:
Chces vybrať jeden posledný článok z každej kategórie a ten zobraziť? Lebo podľa toho, čo si napísal chceš len jeden článok a tam ti je while zbytočné. Ak chceš, ale zároveň pracovať s druhým dotazom vo vnútri while, použi mysql_data_seek(). Pričom si vytvoriš pomocnú premennú, ktoru budeš vo vnútri toho cyklu pokaždé zvyšovať a použijes ju v tejto funkcii, vďaka čomu sa ti to bude pokaždé posúvať teda presne tak ako chceš. A takto vyzerá správny zápis while. |
||
Someone Profil |
#3 · Zasláno: 16. 8. 2012, 16:44:11
anione:
Nelze to spojit v dotazu? |
||
l564 Profil |
Someone:
Jde, ale nikdy jsem nezjistil jak :). Ale prý se dáva do dotazu JOIN který propojí první tabulku s druhou
|
||
pcmanik Profil |
#5 · Zasláno: 16. 8. 2012, 18:28:21
l564:
Mi sme sa ťa nepýtali na riešenie, ktoré aj tak nevieš. Potrebujeme len vedieť viac informácii od anione. |
||
Alphard Profil |
#6 · Zasláno: 16. 8. 2012, 18:41:12
[#1] anione
Váš kód je netypický, ale mohl by fungovat. V těle cyklu by měly být k dispozici $slozkarow a $clankycrow , nejsou?
|
||
peta Profil |
Alphard: S tim mohl fungovat bych chvili pockal. Ukazu proc.
while( $slozkarow = mysql_fetch_assoc($slozkaresult) and $clankycrow = mysql_fetch_assoc($clankyresult)) ) $a = b() and $c = d() // podle meho se b a c zanduji nebo b a vysledek c=d() a pak se to cele ulozi do a, takze tam schazi zavorky ($a = b()) and ($c = d()) |
||
Spectator Profil |
#8 · Zasláno: 17. 8. 2012, 08:34:25
ten poslední článek v kategorii má datum vytvoření a patří prostě do kategorie? Ty chceš vybrat článek s nejvyšším datem?
|
||
Alphard Profil |
[#7] peta
To co popisuješ by mělo nastat při použití && , ale ne při and , viz PHP Operators: Operator Priority.
|
||
anione Profil |
Tak jsem to nakonec vyřešil ukládáním hodnot do tabulky slozky.
Vždy, když vytvořím nový článek, aktualizuje se datum v databázi, kde pro něj mám sloupec posledni_clanek_datum. Pak mohu zobrazit poslední článek s datumem na hlavní straně i v kategoriích. Spíše, by mě zajímalo, zda to nebude mít nějaký zpomalení oproti klasickému spočítání přes php? EDIT: Nakonec jsem zjistil, že by to šlo vypsat, pokud bych vloži while do while: while($slozkarow = mysql_fetch_assoc($slozkaresult)){ while($clankycrow = mysql_fetch_assoc($clankyresult)){ // PHP kod... } } Co myslíte, že je lepší řešení? Ukládání hodnot do databáze, nebo spočítání pomocí PHP? |
||
pcmanik Profil |
#11 · Zasláno: 17. 8. 2012, 14:17:42
anione:
Ukáž nám tú tvoju slávnu databázu, lebo podľa toho že si musiš ukladať posledný dátum tam máš zlú štruktúru, alebo jednoducho nevieš dotazom vybrať posledný článok? Oproti akému počítaniu na strane php máš na mysli? |
||
Časová prodleva: 13 let
|
0