Autor Zpráva
Pavel Vodnář
Profil *
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
Koukněte do manuálu, konkrétně na LIMIT a ORDER BY.
Pavel Vodnář
Profil *
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
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
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 *
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
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
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 *
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
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
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0