Page 1 sur 1

Pagination auto

Posté : 18 mars 2006, 03:01
par Chile
Bonjour,
J'ai un probleme de pagination, car je l'integre avec Dreamweaver, mais il ne semble pas memoriser mes variables ! j'en ai trois !
J'ai trouvé un cas similaire au miens sur le forum
http://www.phpfrance.com/forums/voir_su ... nation.php
mais je n'arrive pas a adapter !
voici mes variables en haut :
<?php require_once('../../Connections/pays.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];


$maxRows_pays = 5;
$pageNum_pays = 0;
if (isset($_GET['pageNum_pays'])) {
  $pageNum_pays = $_GET['pageNum_pays'];
}
$startRow_pays = $pageNum_pays * $maxRows_pays;

$colname2_pays = "1";
if (isset($_POST['pays'])) {
  $colname2_pays = (get_magic_quotes_gpc()) ? $_POST['pays'] : addslashes($_POST['pays']);
}
$colname3_pays = "1";
if (isset($_POST['ville'])) {
  $colname3_pays = (get_magic_quotes_gpc()) ? $_POST['ville'] : addslashes($_POST['ville']);
}
$colname_pays = "1";
if (isset($_POST['site'])) {
  $colname_pays = (get_magic_quotes_gpc()) ? $_POST['site'] : addslashes($_POST['site']);
}
mysql_select_db($database_pays, $pays);
$query_pays = sprintf("SELECT * FROM base_sites WHERE base_sites.site = '%s' AND base_sites.pays = '%s' AND base_sites.ville = '%s' ORDER BY pays ASC", $colname_pays,$colname2_pays,$colname3_pays);
$query_limit_pays = sprintf("%s LIMIT %d, %d", $query_pays, $startRow_pays, $maxRows_pays);
$pays = mysql_query($query_limit_pays, $pays) or die(mysql_error());
$row_pays = mysql_fetch_assoc($pays);
et voici mes liens suivant et precedent :
 <td width="31%" align="center"><?php if ($pageNum_pays > 0) { // Show if not first page ?>
            <a href="<?php printf("%s?pageNum_pays=%d%s", $currentPage, max(0, $pageNum_pays - 1), $queryString_pays); ?>">Pr&eacute;c&eacute;dent</a>
            <?php } // Show if not first page ?>
          </td>
          <td width="23%" align="center"><?php if ($pageNum_pays < $totalPages_pays) { // Show if not last page ?>
            <a href="<?php printf("%s?pageNum_pays=%d%s", $currentPage, min($totalPages_pays, $pageNum_pays + 1), $queryString_pays); ?>">Suivant</a>
            <?php } // Show if not last page ?>
          </td>
merci

Posté : 20 mars 2006, 06:26
par Chile
personne pour m'aider !? :cry:

Posté : 24 mars 2006, 03:03
par Chile
:( toujours pas trouvé la solution pour cette erreur...
au secour :roll:

Posté : 24 mars 2006, 16:24
par Ryle
Quel problème rencontres-tu contrètement ? messages d'erreur ? variable à vide ? limit du select son incorrect ? les nombres dans les liens ne sont pas les bons ?
N'hésites pas à coller des echo un peu partout pour essayer de localiser d'où vient le problème :)

Quelques remarques :

dans tes liens suivant et précédent, tu fais appel à $queryString_pays, mais cette variable n'apparait pas dans ton code... qu'est ce qu'elle contient ?

par ailleurs les min() et max() ne servent à rien à cause des if qui les précèdent : si ($pageNum_pays > 0) alors ($pageNum_pays - 1) sera forcément supérieur ou égal à 0, pas besoin de chercher le max des deux ;)

Posté : 24 mars 2006, 20:39
par Chile
salut Ryle...le sauveur !

au niveau du message d'erreur, j'en ai pas , mais la suite n'affiche rien !
par contre il connait le nbr d'enr. car c'est ecrit dans le champ direction d'intenet explorer.
il oublie egalement lors de precedant :cry:
voici la page ou j'essaye de mettre en place mon projet :

http://www.horizo.com/exemple/indexexemple.htm

si tu choisi chili en pays et montagne en site, il y a plusieurs enreg. avec suivant.

j'ai refait le code avec seulement deux requetes :?

$queryString_pays c'etait le nom de ma page d'affichage. maintenant $queryString_affichageimage.

je developpe mes codes avec Dreamweaver...parce que je pige pas trop le php :cry:

ah...et sous quel forme j'insere le code echo ? :?

j'ai bien essayé d'appliquer les modif que tu as recommandé a un membre qui avait le meme prob ( )
http://www.phpfrance.com/forums/voir_su ... nation.php
comme ceci pour mon code en haut
$colname_affichageimage = "1";
if (isset($_POST['pays'])) {
  $colname_affichageimage = (get_magic_quotes_gpc()) ? $_POST['pays'] : $_GET['pays']; 
}
$colname2_affichageimage = "1";
if (isset($_POST['site'])) {
  $colname2_affichageimage = (get_magic_quotes_gpc()) ? $_POST['site'] : $_GET['site']; 
et en bas :
<tr>
    <td width="23%" align="center"><a href="indexexemple.htm">menu </a></td>
    <td width="31%" align="center"><?php if ($pageNum_affichageimage > 0) { // Show if not first page ?>
        <a href="<?php printf("%s?pageNum_affichageimage=%d%s&pays=%s&site=%s", $currentPage, max(0, $pageNum_affichageimage - 1), $queryString_affichageimage,$colname_affichageimage, $colname2_affichageimage); ?>">Pr&eacute;c&eacute;dent</a>
        <?php } // Show if not first page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_affichageimage < $totalPages_affichageimage) { // Show if not last page ?>
        <a href="<?php printf("%s?pageNum_affichageimage=%d%s&pays=%s&site=%s", $currentPage, min($totalPages_affichageimage, $pageNum_affichageimage + 1), $queryString_affichageimage, $colname_affichageimage, $colname2_affichageimage); ?>">Suivant</a>
        <?php } // Show if not last page ?>
    </td>
mais ca marche pas pour moi bien sur :)

voici mon code mais sans les modif ci dessus :
<?php require_once('../Connections/pays.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];

$maxRows_affichageimage = 4;
$pageNum_affichageimage = 0;
if (isset($_GET['pageNum_affichageimage'])) {
  $pageNum_affichageimage = $_GET['pageNum_affichageimage'];
}
$startRow_affichageimage = $pageNum_affichageimage * $maxRows_affichageimage;

$colname_affichageimage = "1";
if (isset($_POST['pays'])) {
  $colname_affichageimage = (get_magic_quotes_gpc()) ? $_POST['pays'] : addslashes($_POST['pays']);
}
$colname2_affichageimage = "1";
if (isset($_POST['site'])) {
  $colname2_affichageimage = (get_magic_quotes_gpc()) ? $_POST['site'] : addslashes($_POST['site']);
}
mysql_select_db($database_pays, $pays);
$query_affichageimage = sprintf("SELECT * FROM bpays WHERE bpays.pays= '%s' AND bpays.site= '%s' ORDER BY bpays.pays", $colname_affichageimage,$colname2_affichageimage);
$query_limit_affichageimage = sprintf("%s LIMIT %d, %d", $query_affichageimage, $startRow_affichageimage, $maxRows_affichageimage);
$affichageimage = mysql_query($query_limit_affichageimage, $pays) or die(mysql_error());
$row_affichageimage = mysql_fetch_assoc($affichageimage);

if (isset($_GET['totalRows_affichageimage'])) {
  $totalRows_affichageimage = $_GET['totalRows_affichageimage'];
} else {
  $all_affichageimage = mysql_query($query_affichageimage);
  $totalRows_affichageimage = mysql_num_rows($all_affichageimage);
}
$totalPages_affichageimage = ceil($totalRows_affichageimage/$maxRows_affichageimage)-1;

$queryString_affichageimage = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_affichageimage") == false && 
        stristr($param, "totalRows_affichageimage") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_affichageimage = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_affichageimage = sprintf("&totalRows_affichageimage=%d%s", $totalRows_affichageimage, $queryString_affichageimage);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>
<style type="text/css">
<!--
body {
	background-color: #FFFFCC;
}
-->
</style></head>

<body>
<?php do { ?>
<table width="800" height="50" border="0" align="center" cellspacing="0">
  <tr>
    <td width="20%"><div align="center"><?php echo $row_affichageimage['id']; ?></div></td>
    <td width="20%"><div align="center"><?php echo $row_affichageimage['pays']; ?></div></td>
    <td width="20%"><div align="center"><?php echo $row_affichageimage['site']; ?></div></td>
    <td width="20%"><div align="center"><?php echo $row_affichageimage['photo']; ?></div></td>
    <td width="20%"><?php echo $row_affichageimage['chemin']; ?></td>
    <td width="20%"><img src=images/<?php echo $row_affichageimage['photo']; ?> width="40"></td>
    <td width="20%"><div align="center"><a href="majpays2.php?id=<?php echo $row_affichageimage['id']; ?>"><img src="images/crayon.jpg" width="32" height="32" border="0"></a></div></td>
    <td width="20%"><div align="center"><a href="suppays.php?id=<?php echo $row_affichageimage['id']; ?>"><img src="images/corbeille.jpg" width="32" height="32" border="0"></a></div></td>
  </tr>
</table>
<div align="center"></div>
<?php } while ($row_affichageimage = mysql_fetch_assoc($affichageimage)); ?>
<p align="center">&nbsp;</p>
<p align="center">
<table border="0" width="50%" align="center">
  <tr>
    <td width="23%" align="center"><a href="indexexemple.htm">menu </a></td>
    <td width="31%" align="center"><?php if ($pageNum_affichageimage > 0) { // Show if not first page ?>
        <a href="<?php printf("%s?pageNum_affichageimage=%d%s", $currentPage, max(0, $pageNum_affichageimage - 1), $queryString_affichageimage); ?>">Pr&eacute;c&eacute;dent</a>
        <?php } // Show if not first page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_affichageimage < $totalPages_affichageimage) { // Show if not last page ?>
        <a href="<?php printf("%s?pageNum_affichageimage=%d%s", $currentPage, min($totalPages_affichageimage, $pageNum_affichageimage + 1), $queryString_affichageimage); ?>">Suivant</a>
        <?php } // Show if not last page ?>
    </td>
    <td width="23%" align="center">&nbsp; </td>
  </tr>
</table>
</p>
<p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result($affichageimage);
?>

Posté : 27 mars 2006, 19:49
par Chile
je viens d'essayer de simplifier le code avec seulement une requete, ca fonctionne meme pas :? des lors qu'on passe a la page suivante, il oublie tout, meme precedent ! :cry: