PHP-MySQL: Pb Incrémentation Affichage Pg/Pg

Fermé
jakkihm Messages postés 134 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 17 mai 2016 - 12 févr. 2007 à 16:20
jakkihm Messages postés 134 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 17 mai 2016 - 12 févr. 2007 à 18:17
Bonjour,

Ce script qui m'a été fourni pour un affichage page par page des informations issues
d'une bdd ne fonctionne pas sur un point :
la variable "$limit" qui est censée s'incrémenter s'il y a plusieurs pages à afficher
demeure figée à "0". Ainsi, ma 1ère page s'affiche avec le lien "Page suivante", mais
lorsque je clique dessus rien ne se passe.

Voici mon code:
// connecting to database
//=======================
$server = "localhost";
$user = "root";
$pwd = "";
$connect = mysql_connect($server, $user, $pwd) or die ("Erreur : ".mysql_error());
$db = "gallery";
$table = "objects";
$select_db = mysql_select_db($db, $connect) or die ("Erreur : ".mysql_error());

// initializing variables
//=======================
$msg = "";
$results_pg = 4;
if(!isset($limit)) $limit=0; // $limit = start point

// getting page's name
//====================
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$pgName = $path_parts['basename'];

// counting total records in table
//================================
$count = "SELECT COUNT(id) FROM objects"; 
$result = mysql_query($count, $connect);
$row = mysql_fetch_row($result);
$totalRows = $row[0];

// running 'Tables' query 
//=======================
$select = 'SELECT * FROM objects ORDER BY name ASC LIMIT '.$limit.','.$results_pg;
$result = mysql_query($select, $connect) or die ("Erreur : ".mysql_error());

// recalculating $limit to know if other results to display
//=========================================================
$nextLimit = $limit + $results_pg;
$prevLimit = $limit - $results_pg;

// display link to previous page if necessary
//===========================================
if($limit != 0) {
	echo '<a href="'.$pgName.'?limit='.$prevLimit.'">Page précédente</a>';	
}

// display link to next page if necessary
//=======================================
if($nextLimit < $totalRows) {
	echo '<a href="'.$pgName.'?limit='.$nextLimit.'">Page suivante</a>';
}
echo '<br>'.$limit.'<br>'.$nextLimit;	
?>


Merci de votre aide !
A voir également:

6 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
12 févr. 2007 à 16:52
Bonjour,

Ce script a manifestement été créé pour une vieille version de Php.

Il faudrait remplacer
if(!isset($limit)) $limit=0; // $limit = start point
par
if(isset($_GET["limit"]))
    $limit=$_GET["limit"]; // $limit = start point
else
    $limit=0;

L'explication : dans les anciennes versions de Php, on accédait aux variables fournies dans l'URL directement, mais pour des raisons de sécuité, ce n'est plus possible : il faut maintenant passer par le tableau $_GET[].

Xavier
0
jakkihm Messages postés 134 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 17 mai 2016 6
12 févr. 2007 à 17:27
Merci Reivax962,

J'ai effectué les modifications, mais à présent je reçois le message suivant :
Notice: Undefined variable: limit ...

N'est-ce pas étrange puisque la variable $limit est bien initiée à 0 ?

Merci.
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
12 févr. 2007 à 17:40
Mmmh, désolé, je ne suis pas encore très habité à php 5 :)
Essaie ceci, alors :
$limit = 0;
if(isset($_GET["limit"]))
    $limit=$_GET["limit"]; // $limit = start point
0
jakkihm Messages postés 134 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 17 mai 2016 6
12 févr. 2007 à 17:44
Reivax962,
Je viens tout juste d'obtenir une réponse qui fonctionne.
Il m'a été indiqué de coder ainsi:

if(!isset($_GET['limit'])) {
     $limit=0;
}else{
     $limit=$_GET['limit'];
}


Merci pour ton aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
12 févr. 2007 à 17:55
Euh, c'est une blague ?
Tu veux me dire qu'en inversant la clause du if et le else, tu as quelque chose qui fonctionne différemment ? T'es sûr que tu n'avais pas fait une erreur en recopiant "ma" solution ? Parce que c'est super louche, là, quand même !
0
jakkihm Messages postés 134 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 17 mai 2016 6
12 févr. 2007 à 18:17
Je suis absolument certain de n'avoir fait aucune erreur en recopiant ta solution. Je m'y suis même repris à quelques reprises.

Toutefois, je suis aussi étonné que toi que ce code ait produit un résultat.
J'avais essayé plusieurs choses pour faire fonctionner le script, mais je n'aurais jamais pensé à cela.
0