Vybrání a čtení složitějších údajů z db - konzultace

5 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. zdravím! nad tímhle jsem dělel celý odpoledne a až teď večer se mi to podařilo rozchodit ... jde mi o tohle mám v db uložené novinky tak, že ta nejnovější má nejvyšší ID ... potřebuju vypsat na stránku 10 nejnovějších a na zápatí dát odkazy na ty další ... rozumíte, o co mi jde? :-) tak a teď jsem vykoukaml ten zdroják, funguje dobře, ale nezdá se mi, že je to optimální řešení: využívám $i tak, že nejdříve sečtu všechny novinky a pak od tohoto počtu odečítám $i a tak získávám $id, kdy $id je nejvyší možná a $i je zároveň nejnižší možná - viz zdroj pak ke každému id vyberu z darabáze danou novinku - ¨pokud ale chci mít na stránce 10 novinek, musim z db vybrat 10x údaje - zdá se mi, že tak zybtečně zatěžuju db, co vy na to? <? require "sprava/mysql_config.php"; $vyber_novinku = MySQL_DB_Query ($mysql_databaze, "SELECT * FROM novinky ORDER BY id", $spojeni); $celkem = MySQL_Num_Rows ($vyber_novinku); if (!$pozice) $pozice = 0; for ($i=$pozice; $i<(5+$pozice); $i++): ?> <? if (($celkem - $i) > 0) { ?> <table border="1"> <tr> <td> <? $id = $celkem - $i; $vyber_novinku = MySQL_DB_Query ($mysql_databaze, "SELECT * FROM novinky WHERE id = '$id'", $spojeni); $cti_novinku = MySQL_Fetch_Array ($vyber_novinku); echo $id; echo "<br>"; echo $cti_novinku["novinka"]; echo "<br><br><br>"; ?> </td> </tr> </table> <br> <? } ?> <? endfor; ?> jsem si skoro jsitej, že existuje i jiný řešení, kdy z db vyberu data jen jednou a pak je jen vhodně čtu . bude to zřejmě kombinace cyklů ... za boha jsem ale nepřišel na to, jak to udělat pokud mi to někdo poradí a napíše kus validního zdrojáku, budu mu vděčnej ... jinak budu muset použít to, co jsem napsal - viz zdroj díky paskal
  2. <HTML><i>mám v db uložené novinky tak, že ta nejnovější má nejvyšší ID ... potřebuju vypsat na stránku 10 nejnovějších a na zápatí dát odkazy na ty další ... rozumíte, o co mi jde? :-)</i> Jak presne to mas jsem necetl,ale mas to nejak slozite takze: SELECT * FROM tabulka ORDER BY id DESC LIMIT $od,10 for($i=0;$i<$pocet_radku*10;$i+=10) echo "<a href=\"novinky.php?od=$i\">$i</a> ";</HTML>
  3. to se mi zdá celkem podivné, funguje to? jak funguje ta koncová klauzule v tom sql dotazu?
  4. trosku se nad tim zamysli paskal, to co ty davas do cyklu se da vyjadrit pomoci LIMIT .. prvni argument ($pozice) znamena od kteryho radku ti sql vrati data a druhy (10) kolik tech radku bude .. uz je jasno?
  5. zrovna včera jsem o tom takhle přemejšlel a podíval se do manuálu SQL - a takhle to opravdu jde! tím se úpně vyřeší .-) díky

← Zpět na všechna témata