Autor | Zpráva | ||
---|---|---|---|
Pavel Vodnář Profil * |
#1 · Zasláno: 4. 2. 2011, 19:40:13
Dobrý den, studuji na google ale nedaří se mi to najít, jakým způsobem jde vypsat např. posledních 20 údajů z DB? Děkuji Vám
|
||
Tori Profil |
#2 · Zasláno: 4. 2. 2011, 20:00:34
Koukněte do manuálu, konkrétně na LIMIT a ORDER BY.
|
||
Pavel Vodnář Profil * |
#3 · Zasláno: 4. 2. 2011, 20:21:24
Tori:
Výborně - děkuji za informaci , zkloubil jsem: MySQL_Select_Db("sroty_net_") or Die(MySQL_Error()); $dotaz="SELECT * FROM inzeraty ORDER BY datum DESC LIMIT 0, 50"; //vytvoření sql dotazu $vysledek = MySQL_Query($dotaz); // provedení sql dotazu while ($zaznam = MySQL_Fetch_Array($vysledek)){ $nadpis=$zaznam["nadpis"]; $text=$zaznam["text"]; $cas=$zaznam["cas"]; print "<div style='background:#315584; color:white; padding-left:10px'><b>".$nadpis."</b><br><small> ".$text." </small></div>"; print "<div style='background:#B5C7DE; margin-bottom:10px; padding-left:10px;'>".$cas."</div>"; Ale mám teď problém protože mi to údaje vepisuje od spoda, a potřeboval by jsem aby to psalo z vrchu - jak by se to mohlo dát upravit? Děkuji Vám |
||
joe Profil |
#4 · Zasláno: 4. 2. 2011, 20:31:12 · Upravil/a: joe
Pár připomínek:
1. Proč si děláš tu práci a píšeš kód s velkými písmeny: Například MySQL_Select_Db() namísto mysql_select_db()? Ztrácíš tím jen čas a navíc to je víc nepřehledné, velkým písmenem na začátku se označují třídy. Smysl to má u těch metod, kde není podtržítko, tedy třeba metoda: htmlspecialchars je lépe napsaná jako htmlSpecialChars(), protože se v tom člověk lépe orientuje. 2. U řetězců je lepší využívat ' namísto ", pak se tam nebudou hledat promenné 3. Místo MySQL_Fetch_Array použij mysql_fetch_assoc, přistupuješ k položkám podle názvu sloupce přece. |
||
petr 6 Profil |
#5 · Zasláno: 4. 2. 2011, 21:09:24
Pavel Vodnář:
„Ale mám teď problém protože mi to údaje vepisuje od spoda, a potřeboval by jsem aby to psalo z vrchu“ Takže chceš vybrat 20 nejnovějších záznámů, ale v rámci nich je řadit od nejstaršího? |
||
Pavel Vodnář Profil * |
#6 · Zasláno: 5. 2. 2011, 10:11:18
Ano, potřebuji vybrat 20 nejnovějších záznamů a řadit je aby to vypisovalo nahorě nejnovější a dole dvacátý nejstarší, jak docílit toho aby to vypisovalo nahoře nejnovější? Děkuji Vám
|
||
Alphard Profil |
#7 · Zasláno: 5. 2. 2011, 10:19:02
Pořadí lze otočit poddotazem, ale ve vašem případě se mi zdá, že by současná verze měla dělat to, co chcete.
Order by datum desc dá nahoru to nejnovější. Radši si zkontrolujte, jestli má datum správný datový typ a jsou v něm správném hodnoty.
|
||
petr 6 Profil |
#8 · Zasláno: 5. 2. 2011, 10:23:40
Pavel Vodnář:
„Ano, potřebuji vybrat 20 nejnovějších záznamů a řadit je aby to vypisovalo nahorě nejnovější a dole dvacátý nejstarší“ Pleteš si pojmy s dojmy. Dvacátý nejstarší není to samé jako dvacátý nejnovější. Pokud to "ano" je na mou otázku, tak já se ptal na řazení od nejstaršího a to není to, co píšeš v [#6]. Pokud chceš řadit od nejnovějšího, tak použij ORDER BY datum DESC Pokud jich chceš vybrat 20, použiješ LIMIT 0, 20 Tudíž přesně to, co používáš v [#3]. Asi budeš muset lépe popsat, co nefunguje, nebo kde ti to dělá chybu. |
||
Pavel Vodnář Profil * |
#9 · Zasláno: 5. 2. 2011, 13:53:05
Potřebuji vybrat 20 nejnovějších a řadit je tak aby ze zhora to vypisovalo od nejnovejsoho a naspodu byl 20 nejnovější. Řadí mi to podle buď data nebo času, ale - špatně nebo to řadí např podle času předchozího dne, šlo by aby to řadilo i podle data a času zároveň, jaký datový typ použít? Děkuji.
|
||
candiess Profil |
#10 · Zasláno: 5. 2. 2011, 16:20:01
KROK 1 - seřadit podle nějakého sloupce, ve kterem jsou hodnoty chronologicky zasebou
- nejelpší by bylo mít sloupec ID, který by měl nastaven primary key, tím se vyhnout erorům od MySQL ORDER BY ID Desc .. to zapříčíni že se ti seřadí data podle ID a ještě k tomu od největšího ID(nejnovější příspěvek) až po nejmenší ID(nejstarší příspěvek) KROK 2 - vybrat určité množství LIMIT 0,20 vyzkoušej a pohrej si s tím..:) |
||
petr 6 Profil |
#11 · Zasláno: 8. 2. 2011, 00:37:01
Pavel Vodnář:
„Řadí mi to podle buď data nebo času, ale“ Jak máme z předchozího kontextu vytušit, že máš dva sloupce (datum a čas)? ORDER BY datum DESC, cas DESC |
||
Časová prodleva: 13 let
|
0