Pagination, help me please
Résolu
Lucryio
Messages postés
224
Statut
Membre
-
Lucryio Messages postés 224 Statut Membre -
Lucryio Messages postés 224 Statut Membre -
Bonsoir,
Tous d'abord, voila mon code de ma page :
Je fais appel à vous car, ce code me fais cela comme erreur :
Soit sur cette ligne :
Sachant qu'elle est déclaré à la ligne 43, soit cette ligne :
Il me met aussi cette erreur :
ce qui correspond à cette ligne :
Je suppose que cette erreur est dû à la non déclaration de la variable "$pagination" qui est pourtant déclaré.
Si vous pouviez m'aider.
Merci par avance.
Tous d'abord, voila mon code de ma page :
<?php
include('config.php');
include('header2.php');
?> <div id="content">
<div class="content_item">
<!-- modifier ci-dessous le titre qui apparaît dans la barre du navigateur entre > et < -->
<div id="corps100">
<div id="users"><?php
//On affiche un message de bienvenue, si lutilisateur est connecte, on affiche son pseudo
?>
<div id="left"><?php if(isset($_SESSION['username'])){echo 'Je te souhaite une bonne visite ' .htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');}
else
{
echo 'Bienvenue cher visiteur, inscrivez-vous <a href="sign_up.php">ici</a> ou connectez vous <a href="connexion.php">ici</a>, Bonne visite.';
}
?>
<?php
//Si lutilisateur est connecte, on lui donne un lien pour modifier ses informations, pour voir ses messages et un pour se deconnecter
if(isset($_SESSION['username']))
{
//On affiche les liens
if(isset($_SESSION['username']))
?>
<?php
}
else
{
//Sinon, on lui donne un lien pour sinscrire et un autre pour se connecter
?></br>
<a href="sign_up.php">Inscription</a><br />
<a href="connexion.php">Se connecter</a></br></br></br></br>
<?php
// Numero de page (1 par <span class="uir593eqc" id="uir593eqc_18">défaut</span>)
if( isset($_GET['page']) && is_numeric($_GET['page']) )
$page = $_GET['page'];
else
$page = 1;
// Nombre d'info par page
$pagination = 10;
// Numéro du 1er enregistrement à lire
$limit_start = ($page - 1) * $pagination;
// Préparation de la requête
$sql = "SELECT * FROM users LIMIT $limit_start, $pagination";
// Requête SQL
$resultat = mysql_query($sql);
// Traitement et affichage des données
while ( $donnee = mysql_fetch_assoc($resultat) ) {
}
?>
</div>
<div class="content">
<mark>Voici la liste des utilisateurs inscrits sur le site : </mark>
<table>
<tr>
<th>Pseudo</th>
<th>Rang</th>
<th>Date d'inscription</th>
</tr>
<?php
//On recupere les identifiants, les pseudos et les emails des utilisateurs
$req = mysql_query('select id, username, email, DATE_FORMAT( signup_date, "%d/%m/%Y") as dt, rang from users ORDER BY "rang" ');
while($dnn = mysql_fetch_array($req))
{
?>
<tr>
<td class="left"><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></a> </td>
<td class="left"><?php echo htmlentities($dnn['rang'], ENT_QUOTES, 'UTF-8'); ?> </td>
<td class="left"><?php echo htmlentities($dnn['dt'], ENT_QUOTES, 'UTF-8'); ?> </td>
</tr>
<?php
}
}
// Nb d'enregistrement total
$nb_total = mysql_query('SELECT COUNT(*) AS nb_total FROM users');
$nb_total = mysql_fetch_array($nb_total);
$nb_total = $nb_total['nb_total'];
// Pagination
$nb_pages = ceil($nb_total / $pagination);
echo '<p>[ Page :';
// Boucle sur les pages
for ($i = 1 ; $i <= $nb_pages ; $i++) {
if ($i == $page )
echo " $i";
else
echo " <a href=\"?page=$i\">$i</a> ";
}
echo ' ]</p>';
?>
</table>
</div>
</div></div></div></div>
<?php include('info-flash.php');?>
Je fais appel à vous car, ce code me fais cela comme erreur :
Notice: Undefined variable: pagination in C:\wamp\www\FC-LUCRYIO\user.php on line 90
Soit sur cette ligne :
$nb_pages = ceil($nb_total / $pagination);
Sachant qu'elle est déclaré à la ligne 43, soit cette ligne :
$pagination = 10;
Il me met aussi cette erreur :
Warning: Division by zero in C:\wamp\www\FC-LUCRYIO\user.php on line 90
ce qui correspond à cette ligne :
$nb_pages = ceil($nb_total / $pagination);
Je suppose que cette erreur est dû à la non déclaration de la variable "$pagination" qui est pourtant déclaré.
Si vous pouviez m'aider.
Merci par avance.
4 réponses
-
Bonsoir,
en lignes 81 et 82 il y a des accolades qui correspondent à des structures if qui neutralisent l'instanciation de votre variable $pagination
A+
-
Si je les retires, ça me met une erreur et ma page ne s'affiche pas.
Si quelqu'un d'autre aurait une idée, je suis preneur.
Merci par avance. -
Le souci que j'ai c'est que ma variable "pagination" n'est soit disant pas déclarée alors qu'elle l'est.
Et là, je ne trouve pas ou est le problème.
Pouvez-vous m'aider sur mon code ?
Merci par avance. -
<?php include('config.php'); include('header2.php'); ?> <div id="content"> <div class="content_item"> <!-- modifier ci-dessous le titre qui apparaît dans la barre du navigateur entre > et < --> <div id="corps100"> <div id="users"> <?php //On affiche un message de bienvenue, si lutilisateur est connecte, on affiche son pseudo ?> <div id="left"><?php if(isset($_SESSION['username'])){echo 'Je te souhaite une bonne visite ' .htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');} else { echo 'Bienvenue cher visiteur, inscrivez-vous <a href="sign_up.php">ici</a> ou connectez vous <a href="connexion.php">ici</a>, Bonne visite.'; } ?> <?php //Si lutilisateur est connecte, on lui donne un lien pour modifier ses informations, pour voir ses messages et un pour se deconnecter if(isset($_SESSION['username'])) { //On affiche les liens if(isset($_SESSION['username'])) ?> <?php } else { //Sinon, on lui donne un lien pour sinscrire et un autre pour se connecter ?></br> <a href="sign_up.php">Inscription</a><br /> <a href="connexion.php">Se connecter</a></br></br></br></br> <?php } ?></div> <div class="content"> <mark>Voici la liste des utilisateurs inscrits sur le site : </mark> <table> <tr> <th>Pseudo</th> <th>Rang</th> <th>Date d'inscription</th> </tr> <?php // Numero de page (1 par <span class="s7p7oe5766j" id="s7p7oe5766j_18">défaut</span>) if( isset($_GET['page']) && is_numeric($_GET['page']) ) $page = $_GET['page']; else $page = 1; // Nombre d'info par page $pagination = 20; // Numéro du 1er enregistrement à lire $limit_start = ($page - 1) * $pagination; // Préparation de la requête $dn = 'SELECT id, username, email, DATE_FORMAT( signup_date, "%d/%m/%Y %H:%i:%s") as dt, rang from users ORDER BY "rang" LIMIT $limit_start, $pagination'; // Requête SQL $resultat = mysql_query($dn); // Traitement et affichage des données while ( $dnn = mysql_fetch_assoc($resultat) ) { ?> <tr> <td class="left"><a href="profile.php?id=<?php echo $dnn['id']; ?>"><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></a></td> <td class="left"><?php echo htmlentities($dnn['rang'], ENT_QUOTES, 'UTF-8'); ?> </td> <td class="left"><?php echo htmlentities($dnn['dt'], ENT_QUOTES, 'UTF-8'); ?> </td> </tr> <?php } // Nb d'enregistrement total $nb_total = mysql_query('SELECT COUNT(*) AS nb_total FROM users'); $nb_total = mysql_fetch_array($nb_total); $nb_total = $nb_total['nb_total']; // Pagination $nb_pages = ceil($nb_total / $pagination); echo '<p>[ Page :'; // Boucle sur les pages for ($i = 1 ; $i <= $nb_pages ; $i++) { if ($i == $page ) echo " $i"; else echo " <a href=\"?page=$i\">$i</a> "; } echo ' ]</p>'; ?> </table> </div> </div></div></div></div> <?php include('info-flash.php');?>
Voila mon nouveau code, alors j'ai un souci qui me dit ça :
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\FC-LUCRYIO\user.php on line 68
ce qui correspond à cette ligne :while ( $dnn = mysql_fetch_assoc($resultat) )
Pouvez-vous m'aider ?
Merci par avance.-
script revu et corrigé à tester:
<?php include('config.php'); include('header2.php'); ?> <div id="content"> <div class="content_item"> <!-- modifier ci-dessous le titre qui apparaît dans la barre du navigateur entre > et < --> <div id="corps100"> <div id="users"> <?php //On affiche un message de bienvenue, si lutilisateur est connecte, on affiche son pseudo ?> <div id="left"> <?php if (isset($_SESSION['username'])): ?> Je te souhaite une bonne visite <?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?> <?php else: ?> Bienvenue cher visiteur, inscrivez-vous <a href="sign_up.php">ici</a> ou connectez vous <a href="connexion.php">ici</a>, Bonne visite <?php endif; ?> <?php if (isset($_SESSION['username'])): ?> <!-- Si lutilisateur est connecte, on lui donne un lien pour modifier ses informations, pour voir ses messages et un pour se deconnecter //On affiche les liens --> <?php else: ?> <!-- Sinon, on lui donne un lien pour sinscrire et un autre pour se connecter --> <br/> <a href="sign_up.php">Inscription</a><br /> <a href="connexion.php">Se connecter</a></br></br></br></br> <?php endif; ?> </div> <div class="content"> <mark>Voici la liste des utilisateurs inscrits sur le site : </mark> <table> <tr> <th>Pseudo</th> <th>Rang</th> <th>Date inscription</th> </tr> <?php // Numero de page (1 par <span class="s7p7oe5766j" id="s7p7oe5766j_18">défaut</span>) if (isset($_GET['page']) && is_numeric($_GET['page'])) { $page = $_GET['page']; } else { $page = 1; } // Nombre d'info par page $pagination = 20; // Numéro du 1er enregistrement à lire $limit_start = ($page - 1) * $pagination; // Préparation de la requête $dn = "SELECT id, username, email, " . "DATE_FORMAT( signup_date, '%d/%m/%Y %H:%i:%s') as dt, " . "rang from users ORDER BY 'rang' LIMIT $limit_start,$pagination "; // Requête SQL $resultat = mysql_query($dn); // Traitement et affichage des données ?> <?php while ($dnn = mysql_fetch_assoc($resultat)): ?> <tr> <td class="left"><a href="profile.php?id=<?php echo $dnn['id']; ?>"><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></a></td> <td class="left"><?php echo htmlentities($dnn['rang'], ENT_QUOTES, 'UTF-8'); ?> </td> <td class="left"><?php echo htmlentities($dnn['dt'], ENT_QUOTES, 'UTF-8'); ?> </td> </tr> <?php endwhile; ?> </table> <?php // Nb d'enregistrement total $nb_total = mysql_query('SELECT COUNT(*) AS nb_total FROM users'); $nb_total = mysql_fetch_array($nb_total); $nb_total = $nb_total['nb_total']; // Pagination $nb_pages = ceil($nb_total / $pagination); ?> <p>[ Page : <?php for ($i = 1; $i <= $nb_pages; $i++): ?> <?php if ($i == $page): ?> <?php echo $i; ?> <?php else: ?> <a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a> <?php endif; ?> <?php endfor; ?> ]</p> </div> </div> </div> </div> </div> <?php include('info-flash.php'); ?> -
-
-
Je n'ai affiché aucune requête SQL.
Le caractère "." en php est le caractère de concaténation : https://www.php.net/manual/fr/language.operators.string.php
Les "..." après le while n'existe pas en php, c'est juste pour indiquer de mettre la suite de ton code. -
-