Autor | Zpráva | ||
---|---|---|---|
Ewík Profil * |
#1 · Zasláno: 14. 9. 2010, 16:28:36
Zdar, protože se v php teprve rozkoukávám a skripty dělám z návodů, chtěl bych se tu zeptat jak by šlo vytvořit stránkování v tomto skriptu:
function display_news() { $connect = mysql_connect('localhost', '*****', '********'); if (!$connect) die('<font color=\"red\">Spojení s databází se nepodařilo.</font>'); $select = mysql_select_db('trywebi', $connect); if (!$select) { echo mysql_errno($connect), ': ',mysql_error($connect), '<br>'; die('<font color=\"red\">Nepodařilo se vybrat databázi.</font>'); } $sql = "SELECT " ."DATE_FORMAT(write_time, '%e.%c.%Y') AS write_time," ."autor," ."text " ."FROM articles " ."ORDER BY write_time DESC" ; $result = mysql_query($sql,$connect); if (!$result) { echo mysql_errno($connect), ': ',mysql_error($connect),'<br>'; die('<font color=\"red\">Nepodařilo se vykonat sql dotaz.</font>'); } while(is_array($data = mysql_fetch_array($result))) { $write_time = $data['write_time']; $text = $data['text']; $autor = $data['autor']; echo '<fieldset>'; echo '<legend><b>',$write_time,' | ',$autor,'</b></legend>'; echo $text; echo '</fieldset>'; } mysql_free_result($result); mysql_close($connect); } display_news('news'); Přál bych si aby mi tu někdo poradil, ne typu: Už to tu je nebo Imgtfy ci googlu. Kód normálně funguje. Předem děkuji za radu . |
||
miskith Profil |
#2 · Zasláno: 14. 9. 2010, 18:31:29 · Upravil/a: miskith
Pokud chápu problém, tak si
někde na začátek si hoď: if (!isset($_GET['page']) || !is_numeric($_GET['page'])) {$_GET['page'] = 0;} A do SQLka si poté přidej: LIMIT ".($_GET['page']*50).", 50 Kde číslo 50 si změň na počet položek na stránku. |
||
Ewík Profil * |
#3 · Zasláno: 14. 9. 2010, 19:30:49
Já to potřebuju typu: článek 1, 2... a nakonci třeba po 7 článcích by bylo stránka 1, 2, 3, 4, atd. pokud chápete.
|
||
miskith Profil |
#4 · Zasláno: 14. 9. 2010, 19:50:54
Ano..to je to co sem napsal..jen sem ti nedopsal ještě jak udělat dole to číslování...
Z celkového počtu článků si zjistíš kolik chceš stránek (třeba máš 100 článků a 50 článků na stránku... Tudíž dvě stránky (100/50=2)) No a potom si uděláš generování odkazů pomocí zopakování cyklu Xkrát, kde X je počet stránek. |
||
Ewík Profil * |
#5 · Zasláno: 15. 9. 2010, 14:21:27
Nemohl bys to napat? Netuším jak zjistit z databáze kolik je tam článků a nakonec napsání těch odkazů ;_(
|
||
miskith Profil |
#6 · Zasláno: 15. 9. 2010, 18:28:29 · Upravil/a: miskith
Nedělal jsem to podle nějakého návodu nebo podle už sepsaného scriptu, ale psal jsem to normálně v prohlížeči do políčka, takže tam může být někde chyba. Kdyžtak napiš kdyby ti to nešlo (Co to dělá, co to vypisuje...).
Sepíšu jen potřebné scripty: //Na začátek kódu hodit ochranu proti "bugu" (kdyby nebylo odesláno číslo stránky) if (!isset($_GET['page']) || !is_numeric($_GET['page'])) {$_GET['page'] = 0;} //Zjistění počtu řádků $rows = mysql_query("SELECT Count(write_time) FROM articles"); //SQL proměnná na výpis dat podle stránky $sql = "SELECT DATE_FORMAT(write_time, '%e.%c.%Y') AS write_time, autor, text FROM articles ORDER BY write_time DESC LIMIT ".($_GET['page']*50).", 50"; //A na libovolné místo si hodit stránkování echo "Přejít na stranu: "; $pages = ceil($rows/50); for ($i = 1; $i<=$pages; $i++;) { echo "<a href='blah.php?page=".$i."'>".$i."</a>\n"; } |
||
Ewík Profil * |
#7 · Zasláno: 15. 9. 2010, 18:44:46
jo, jasně, zkusím a napíšu, díky :)
|
||
Ewík Profil * |
#8 · Zasláno: 15. 9. 2010, 18:54:29
1 chyba (zatim) mi to hazi
Parse error: syntax error, unexpected ';', expecting ')' in /home/users/krekr/try-web.hys.cz/web/core.php on line 99 je to od ... for ($i = ... echo "Přejít na stranu: "; $pages = ceil($rows/50); for ($i = 1; $i<=$pages; $i++;) { echo "<a href='blah.php?page=".$i."'>".$i."</a>\n"; } |
||
panther Profil |
#9 · Zasláno: 15. 9. 2010, 19:16:34
Ewík:
neočekávaný středník, očekávaný konec závorky na řádku 99 (třetí zde). Opravdu na tohle potřebuješ psát do diskuse? Nestačí vzít slovník, přeložit si, co ti chyba říká a hledat ji na uvedeném řádku? |
||
miskith Profil |
#10 · Zasláno: 15. 9. 2010, 19:23:25 · Upravil/a: miskith
Ewík:
Přepsal sem se.. stačí smazat poslední středník... for ($i = 1; $i<=$pages; $i++) |
||
Ewík Profil * |
#11 · Zasláno: 16. 9. 2010, 06:51:32
Díky že jsi měl se mnou tu trpělivost :)
|
||
miskith Profil |
#12 · Zasláno: 16. 9. 2010, 16:54:49 · Upravil/a: miskith
Koukám, že sem tam udělal chybu. Nahraď:
for ($i = 1; $i<=$pages; $i++) za for ($i = 0; $i<$pages; $i++) |
||
Ewík Profil * |
#13 · Zasláno: 17. 9. 2010, 16:09:51
jop :)
|
||
Časová prodleva: 14 let
|
0