Autor | Zpráva | ||
---|---|---|---|
java Profil * |
#1 · Zasláno: 22. 7. 2009, 20:30:13
mam jednoduchy guestbook v php neumim guestbook funguje ALE chtel bych aby se strankoval
To by se podle me dalo vyresit prikazem select jde mi zachovat stranku nezmenenou jen pridat tlacitka dalsi a predchozi a co bych mel pridat do jiz hotoveho scriptu aby mi ukazal napr 30 zaznamu a po kliknuti na tlacitko dalsi dalsich tricet a po kliknuti na tlacitko predchozi predchozich tricet diky |
||
Alphard Profil |
#2 · Zasláno: 22. 7. 2009, 21:47:46
Stránka je určena svou URL adresou (měla by být, jestli tam nemáte AJAX apod.). Při generování odkazů předchozí a další vemte adresu aktuální stránky a jenom upravte údaje pro stránkování.
|
||
zvěřiňák Profil |
#3 · Zasláno: 23. 7. 2009, 09:04:04
Tady používá Petr Zajíc stránkování ve svém seriálu o PHP. Skript pro výběr a zobrazení záznamů - Ukázat celý skript.
|
||
SwimX Profil |
#4 · Zasláno: 23. 7. 2009, 12:52:27
java:
pokud pomůže moje funkce: // zjistime jestli nekde jsme, jinak první strana if(isset($url['dir4'])){ // čtvrtá GET proměnná za lomítkem strana-x $strana = split('-',$url['dir4']); $strana = is_numeric($strana[1])?$strana[1]:1; } else $strana = 1; // zjistíme počet záznamů v tabulce $pocetradku = mysql_result(mysql_query("SELECT COUNT(*) from diskuze "), 0); if ($pocetradku>0) { // pokud nějaké jsou -> nezbytné výpočty, mysql dotaz, stránkování, jinak nic $pocet = 1; $od = ($strana-1) * $pocet; $limit = "limit $od, $pocet"; $cl=mysql_query("SELECT * FROM diskuze $limit;"); strankovani($pocet, 3, "/{$url['dir1']}/{$url['dir2']}/{$url['dir3']}/strana-", $strana, $pocetradku); } function strankovani($pocet_radek, $okolo, $url, $strana, $celkem_radek){ if ($celkem_radek>$pocet_radek){ echo "<p class='pages'>"; if ($strana == 1) { echo "Začátek | "; echo "Předchozí | "; } else { echo "<a href=\"".$url."1/\">Začátek</a> | "; echo "<a href=\"".$url."".($strana-1)."/\">Předchozí</a> | "; } for($i = $okolo; $i > 0; $i--){ if(($strana-$i)>0) echo "<a href=\"".($url).($strana-$i)."/\">".($strana-$i)."</a> | ";; } echo $strana." | "; $posledni_strana = ceil($celkem_radek/$pocet_radek); for($i = 1; $i <= $okolo; $i++){ if(($strana+$i)<=$posledni_strana) echo "<a href=\"".($url).($strana+$i)."/\">".($strana+$i)."</a> | "; } if ($posledni_strana == $strana) { echo "Následující | "; echo "Konec"; } else { echo "<a href=\"".$url.($strana+1)."/\">Následující</a> | "; echo "<a href=\"".$url.$posledni_strana."/\">Konec</a>"; } echo "</p>"; } } |
||
java Profil * |
#5 · Zasláno: 23. 7. 2009, 17:08:15
no ja bych to chtel resit proste jen tak ze se meni jen obsah toho divu kam se posilaj vysledky napriklad zobrazi se prvnich 15 a po kliknuti na next se zobrazi stejna stranka jen s jinejma vysledkama
moc php nerozumim musim si to nastudovat slouzi k tomu omezenemu vypisu funkce limit predpokladam |
||
SwimX Profil |
#6 · Zasláno: 23. 7. 2009, 18:48:57
java:
tu funkci co jsem napsal já, nebo podobnou, na kterou odkázal zvěřiňák aplikuješ, a výpis si provedeš do svého divu ;) |
||
java Profil * |
#7 · Zasláno: 24. 7. 2009, 17:18:45
jasny akorat sem lama kdyz sem napisu ten kod poradite co mam zmenit ?
<?php require("administrace/class/mysql.class.php"); function uprav_data($upravit){ $upraveno1=strip_tags($upravit, "<strong>"); return $upraveno1; } if(isset($_POST['hlasuj'])){ if(mysql_result(mysql_query("SELECT COUNT(*) FROM ip WHERE ip='$_SERVER[REMOTE_ADDR]'"),0)==0){ $query="UPDATE hlasovani SET hlasu=hlasu+1 WHERE id='$_POST[hlas]'"; mysql_query($query); $query="INSERT INTO ip SET ip='$_SERVER[REMOTE_ADDR]'"; mysql_query($query); } } if($_POST['posli'] and $_POST['text']!="" and $_POST['jmeno']!="" ){ if($_POST['kontrola']!=6) $chyba="<br /><br /><br />"; else{ $cas=date(" d.m Y G:i:s"); $jmeno=uprav_data($_POST['jmeno']); $text=uprav_data($_POST['text']); $query="INSERT INTO kniha SET jmeno='$jmeno', text='$text', cas='$cas'"; mysql_query($query); header("location: guestbook.php"); } } $query="SELECT jmeno,cas,text FROM kniha ORDER BY id DESC"; $result=mysql_query($query); while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ $datum=explode(" ",$row['cas']); $datum1=explode(":",$datum[3]); $datum2=$datum[1].' '. $datum[2].', '.$datum1[0].':'.$datum1[1]; $vypis.="<div class=\"head\"><table class=\"forum\"><tr><td><strong>$row[jmeno]</strong> </td><td> napsal: <em>$datum2</em></td></tr></table></div>"; $vypis.="<div class=\"text\">$row[text]</div>"; } $query="SELECT * FROM hlasovani"; $result=mysql_query($query); $pocet_img=mysql_num_rows($result); if($pocet_img>0){ while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ $i++; $obrazky.='<span class="photo sample10"> <a href="hlasovani/'.$row['nazev'].'" rel="lightbox[roadtrip]"><span></span><img src="resize.php?filename=hlasovani/'.$row['nazev'].'" alt="fotka'.$i.'" /></a> </span>'; $hlasovani.=$i.'.<input type="radio" name="hlas" value="'.$row['id'].'" />(hlasy : '.$row['hlasu'].'x) '; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name='robots' content='index,follow' /> <script src="js/prototype.js" type="text/javascript"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <script src="js/lightbox.js" type="text/javascript"></script> <link rel="stylesheet" href="lightbox.css" type="text/css" media="screen" /> <link rel="stylesheet" href="styl.css" type="text/css" media="screen"/> <!--[if lt IE 7]> <style type="text/css"> .photo span { behavior: url(iepngfix.htc); } </style> <![endif]--> </head> <body> <div id="vsechno"> </div> <?php include_once("menugalerie.html") ?> <h4> GUEST BOOK </h4> <h4> </h4> <div id="forum_form"> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <p> <?php echo $chyba; ?> Jm�no : <input type="text" class="textove_pole" name="jmeno" /> Text:</p> <p> <textarea cols="40" rows="11" class="textove_pole" name="text"></textarea><br /> kontrola spam <img src="img/spam.gif" alt="kontrola" /> = <input type="text" name="kontrola" /><br /> <input type="submit" value="odeslat" class="tlacitko" name="posli" /> </p> </form> </div> <div class="bunka"> <?php echo $vypis; ?> </div> <!-- konec �zk�ho sloufotkypce s menu --> <div class="clear"></div> <?php include_once("patka.html") ?> </div> <!-- ukoncen� v1echno--> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-6022938-1"); pageTracker._trackPageview(); </script> </body> </html> |
||
java Profil * |
#8 · Zasláno: 24. 7. 2009, 19:10:39
please nekdo poradte dekuju staci kdyz mi reknete co a kam bych mel pridat ..
|
||
SwimX Profil |
#9 · Zasláno: 24. 7. 2009, 22:49:48
java:
pokud je to celé jeden soubor -> pak tiskneš příspěvky dřív než pošleš prohlížeči doctype, head atd., trochu zvláštní..? jiank je to v tomdle: $query="SELECT jmeno,cas,text FROM kniha ORDER BY id DESC"; $result=mysql_query($query); while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ $datum=explode(" ",$row['cas']); $datum1=explode(":",$datum[3]); $datum2=$datum[1].' '. $datum[2].', '.$datum1[0].':'.$datum1[1]; $vypis.="<div class=\"head\"><table class=\"forum\"><tr><td><strong>$row[jmeno]</strong> </td><td> napsal: <em>$datum2</em></td></tr></table></div>"; $vypis.="<div class=\"text\">$row[text]</div>"; } udělej to tale: // zjistime jestli nekde jsme, jinak první strana if(isset($url['dir4'])){ // čtvrtá GET proměnná za lomítkem strana-x $strana = split('-',$url['dir4']); $strana = is_numeric($strana[1])?$strana[1]:1; } else $strana = 1; // zjistíme počet záznamů v tabulce $pocetradku = mysql_result(mysql_query("SELECT COUNT(*) from kniha "), 0); if ($pocetradku>0) { // pokud nějaké jsou -> nezbytné výpočty, mysql dotaz, stránkování, jinak nic $pocet = 1; $od = ($strana-1) * $pocet; $limit = "limit $od, $pocet"; $query="SELECT jmeno,cas,text FROM kniha ORDER BY id DESC $limit"; $cl=mysql_query($query); while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ $datum=explode(" ",$row['cas']); $datum1=explode(":",$datum[3]); $datum2=$datum[1].' '. $datum[2].', '.$datum1[0].':'.$datum1[1]; $vypis.="<div class=\"head\"><table class=\"forum\"><tr><td><strong>$row[jmeno]</strong> </td><td> napsal: <em>$datum2</em></td></tr></table></div>"; $vypis.="<div class=\"text\">$row[text]</div>"; } strankovani($pocet, 3, "/{$url['dir1']}/{$url['dir2']}/{$url['dir3']}/strana-", $strana, $pocetradku); } |
||
java Profil * |
#10 · Zasláno: 25. 7. 2009, 01:32:57
diky moooc
jo je to jeden soubor je to spatne prvne napsat ten skript php a pak az hlavicku ? protoze jsem to nedelal ja jen ten clovek co to delal uz se mi pak neozval a tak si to musim upravit sam mam takhle resenou i galerii .. Jeste jednou diky |
||
SwimX Profil |
#11 · Zasláno: 25. 7. 2009, 12:06:01
java:
rádo se stalo :) „je to spatne prvne napsat ten skript php a pak az hlavicku ?“ jelikož máš doctype XHTML 1.0. Strict -> tak ano, správně by se ti stránka neměla ani zobrazit, ale jelikož stejně odesíláš MIME TYPE text/html tak se ti zobrazí. Což náš ale přidvádí na to otázku, proč máš doctype XHTML, proč ne krásné HTML? vyloženě špatně to není, jinak řečeno: funguje to, ale proč prostě nevzít ten výpis příspěvků a nevložit ho doprostřed stránky, tam kde by měl být? nad HTML nechej jenom to zapisování do knihy, a přesměrování (to by ti v půlce stránky nefungovalo) |
||
java Profil * |
hm tak seů asi uplnej nevim proc ale nefunguje to melo by to vypadat teda takto ?
// zjistime jestli nekde jsme, jinak první strana if(isset($url['dir4'])){ // čtvrtá GET proměnná za lomítkem strana-x $strana = split('-',$url['dir4']); $strana = is_numeric($strana[1])?$strana[1]:1; } else $strana = 1; // zjistíme počet záznamů v tabulce $pocetradku = mysql_result(mysql_query("SELECT COUNT(*) from kniha "), 0); if ($pocetradku>0) { // pokud nějaké jsou -> nezbytné výpočty, mysql dotaz, stránkování, jinak nic $pocet = 1; $od = ($strana-1) * $pocet; $limit = "limit $od, $pocet"; $query="SELECT jmeno,cas,text FROM kniha ORDER BY id DESC $limit"; $cl=mysql_query($query); while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ $datum=explode(" ",$row['cas']); $datum1=explode(":",$datum[3]); $datum2=$datum[1].' '. $datum[2].', '.$datum1[0].':'.$datum1[1]; $vypis.="<div class=\"head\"><table class=\"forum\"><tr><td><strong>$row[jmeno]</strong> </td><td> napsal: <em>$datum2</em></td></tr></table></div>"; $vypis.="<div class=\"text\">$row[text]</div>"; } strankovani($pocet, 3, "/{$url['dir1']}/{$url['dir2']}/{$url['dir3']}/strana-", $strana, $pocetradku); } function strankovani($pocet_radek, $okolo, $url, $strana, $celkem_radek){ if ($celkem_radek>$pocet_radek){ echo "<p class='pages'>"; if ($strana == 1) { echo "Začátek | "; echo "Předchozí | "; } else { echo "<a href=\"".$url."1/\">Začátek</a> | "; echo "<a href=\"".$url."".($strana-1)."/\">Předchozí</a> | "; } for($i = $okolo; $i > 0; $i--){ if(($strana-$i)>0) echo "<a href=\"".($url).($strana-$i)."/\">".($strana-$i)."</a> | ";; } echo $strana." | "; $posledni_strana = ceil($celkem_radek/$pocet_radek); for($i = 1; $i <= $okolo; $i++){ if(($strana+$i)<=$posledni_strana) echo "<a href=\"".($url).($strana+$i)."/\">".($strana+$i)."</a> | "; } if ($posledni_strana == $strana) { echo "Následující | "; echo "Konec"; } else { echo "<a href=\"".$url.($strana+1)."/\">Následující</a> | "; echo "<a href=\"".$url.$posledni_strana."/\">Konec</a>"; } echo "</p>"; } } |
||
java Profil * |
#13 · Zasláno: 25. 7. 2009, 15:11:49
zkousel jsem to takhle a nejde to nejspis proto ze musim nekde neco dopsat jako treba ten limit adresu stranky atd akorat ja uz vazne nevim kde
|
||
SwimX Profil |
#14 · Zasláno: 26. 7. 2009, 19:00:20
java:
prosím, na kódy používej zvýrazňování, které tady máme: jinak v té funkci (jak v ní, tak když ji voláš), používáš $url['dir1'] -> tato proměná vznikne díky rewritům,a nemyslím si, že ty to tak máš udělané. Uprav si to podle sebe (předpokládám $_GET['cosi'] |
||
java Profil * |
#15 · Zasláno: 27. 7. 2009, 16:28:23
Omlouvám se budu to použivat. Nějak tu posledni poznamku nechapu ale nasel jsem jedno reseni tady http://blog.jakubmaly.cz/programovani/php/strankovani-v-php-a-mysql-pohodlne-a-univerzalne.aspx
Neporadite co a kde bych mel dopsat do tohoto kodu aby mi to fungovalo ? dekuji < //vytvoreni objektu, jako parametry konstruktoru se //predavaji SQL dotaz a parametr URL, ktery bude pager //pouzivat pro odkazy na dalsi stranky $cp = new Pager('SELECT * FROM uzivatele', 'page'); //ziska z databaze pozadovanou cast vysledkove sady $cp->DataBind(); //postupne ziskavani jednotlivych zaznamu z vysledkove sady while ($obj = $cp->GetOne()) { echo $obj->id_uziv." ".$obj->nick." <br />"; } //vypsani pageru $cp->DrawPager();> |
||
java Profil * |
#16 · Zasláno: 27. 7. 2009, 16:32:03
//vytvoreni objektu, jako parametry konstruktoru se //predavaji SQL dotaz a parametr URL, ktery bude pager //pouzivat pro odkazy na dalsi stranky $cp = new Pager('SELECT * FROM uzivatele', 'page'); //ziska z databaze pozadovanou cast vysledkove sady $cp->DataBind(); //postupne ziskavani jednotlivych zaznamu z vysledkove sady while ($obj = $cp->GetOne()) { echo $obj->id_uziv." ".$obj->nick." <br />"; } //vypsani pageru $cp->DrawPager();> |
||
Časová prodleva: 15 let
|
0