Autor Zpráva
java
Profil *
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
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
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
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&nbsp;|&nbsp;";
      echo "Předchozí&nbsp;|&nbsp;";
    }
    else {
      echo "<a href=\"".$url."1/\">Začátek</a>&nbsp;|&nbsp;";
      echo "<a href=\"".$url."".($strana-1)."/\">Předchozí</a>&nbsp;|&nbsp;";
    }

    for($i = $okolo; $i > 0; $i--){
      if(($strana-$i)>0) echo "<a href=\"".($url).($strana-$i)."/\">".($strana-$i)."</a>&nbsp;|&nbsp;";;
    }

    echo $strana."&nbsp;|&nbsp;";
    $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>&nbsp;|&nbsp;";
    }

    if ($posledni_strana == $strana) {
      echo "Následující&nbsp;|&nbsp;";
      echo "Konec";
    }
    else {
      echo "<a href=\"".$url.($strana+1)."/\">Následující</a>&nbsp;|&nbsp;";
      echo "<a href=\"".$url.$posledni_strana."/\">Konec</a>";
    }
    echo "</p>";
  }
}
java
Profil *
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
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 *
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>&nbsp;&nbsp;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) &nbsp; &nbsp;';
}
}


?>
<!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 *
please nekdo poradte dekuju staci kdyz mi reknete co a kam bych mel pridat ..
SwimX
Profil
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>&nbsp;&nbsp;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>&nbsp;&nbsp;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 *
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
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>&nbsp;&nbsp;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&nbsp;|&nbsp;";
      echo "Předchozí&nbsp;|&nbsp;";
    }
    else {
      echo "<a href=\"".$url."1/\">Začátek</a>&nbsp;|&nbsp;";
      echo "<a href=\"".$url."".($strana-1)."/\">Předchozí</a>&nbsp;|&nbsp;";
    }

    for($i = $okolo; $i > 0; $i--){
      if(($strana-$i)>0) echo "<a href=\"".($url).($strana-$i)."/\">".($strana-$i)."</a>&nbsp;|&nbsp;";;
    }

    echo $strana."&nbsp;|&nbsp;";
    $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>&nbsp;|&nbsp;";
    }

    if ($posledni_strana == $strana) {
      echo "Následující&nbsp;|&nbsp;";
      echo "Konec";
    }
    else {
      echo "<a href=\"".$url.($strana+1)."/\">Následující</a>&nbsp;|&nbsp;";
      echo "<a href=\"".$url.$posledni_strana."/\">Konec</a>";
    }
    echo "</p>";
  }
}
java
Profil *
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
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 *
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 *
//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();>

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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