Vous n'êtes pas identifié(e).
Pages : 1
Mon soucis est résolu, ça venez d'une variable qui se trouver dans mon index et qui prenez la priorité sur mon script de pagination. Merci quand même
Peut-être bien, mais je souhaiterai résoudre mon problème
Oui mais quand je mets $_GET['page'] aucune données ne s'affiche
C'est pour convertir le numéro de la page en entier, mais effectivement je ne pense pas que cela serve à grand chose ici.
Je ne suis pas sûr que le problème vienne de la requête. J'ai modifié les "$GET_['page'] et mes 5 premières données sont bien affichées sur la première page. Mais lorsque je clique sur la 2ème page, j'ai une page vide. Voilà mon code modifié :
//Connexion à la base de données
if (!connexion())
{
echo "erreur de connexion à la base".mysql_error();
}
else
{
$messagesParPage=5; //Nous allons afficher 5 messages par page.
//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM clients'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);
if(isset($_GET['index.php?nompage=listeClients&page'])) // Si la variable $_GET['page'] existe...
{
$pageActuelle=intval($_GET['index.php?nompage=listeClients&page']); //intval -> retourne la valeur entière
if ($pageActuelle > $nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle = $nombreDePages; //on reste sur la dernière page
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
}
$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
// La requête sql pour récupérer les messages de la page actuelle.
$retour_messages=mysql_query('SELECT nom, prenom, telephone, mail, note FROM clients ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'')
or die(mysql_error());
//print_r($retour_messages);
echo 'Nombre d\'enregistrement : '.$total;
echo '<table id="tableau">'."\n";
echo '<tr>';
echo '<td> NOM </td>';
echo '<td> PRENOM </td>';
echo '<td> TELEPHONE </td>';
echo '<td> E-MAIL </td>';
echo '<td> NOTE </td>';
echo '</tr>';
while($donnees_messages=mysql_fetch_array($retour_messages)) // On lit les entrées une à une grâce à une boucle
{//De plus j'ajoute aussi un nl2br pour prendre en compte les sauts à la ligne dans le message.
echo '<tr>';
echo '<td class="nomC">'.stripslashes($donnees_messages['nom']).'</td>';
echo '<td>'.stripslashes($donnees_messages['prenom']).'</td>';
echo '<td>'.stripslashes($donnees_messages['telephone']).'</td>';
echo '<td>'.stripslashes($donnees_messages['mail']).'</td>';
echo '<td>'.stripslashes($donnees_messages['note']).'</td>';
echo '</tr>';
}
echo '</table>';
echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="index.php?nompage=listeClients&page='.$i.'">'.$i.'</a> ';
}
}
echo '</p>';
}
?>
J'obtiens ceci
Erreur de syntaxe près de '-5, 5' à la ligne 1
D'après le message d'erreur, ça serait cette ligne :
while($donnees_messages=mysql_fetch_array($retour_messages))
Il n'y a rien à la ligne 43, mais si c'est pour la ligne 41 il affiche les données de ma requête selon la limite et le nombre de données que je souhaite par page.
Je vais attendre encore un peu pour le PDO ^^ ça m'a l'air assez complexe pour le moment.
Bonjour,
J'ai créée une page avec une base de données. Sur ma page je voulais afficher mon tableau de données avec un système de pagination automatique. J'ai récupérer le script sur ICI. J'ai tout réécris mais j'ai une erreur que je n'arrive pas à résoudre. Voici mon script php :
//Connexion à la base de données
if (!connexion())
{
echo "erreur de connexion à la base".mysql_error();
}
else
{
$messagesParPage=5; //Nous allons afficher 5 messages par page.
//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM clients'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);
if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
$pageActuelle=intval($_GET['page']); //intval -> retourne la valeur entière
if ($pageActuelle > $nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle = $nombreDePages; //on reste sur la dernière page
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
}
$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
// La requête sql pour récupérer les messages de la page actuelle.
$retour_messages=mysql_query('SELECT * FROM clients ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
echo 'Nombre d\'enregistrement : '.$total;
echo '<table id="tableau">'."\n";
echo '<tr>';
echo '<td> NOM </td>';
echo '<td> PRENOM </td>';
echo '<td> TELEPHONE </td>';
echo '<td> E-MAIL </td>';
echo '<td> NOTE </td>';
echo '</tr>';
while($donnees_messages=mysql_fetch_array($retour_messages)) // On lit les entrées une à une grâce à une boucle
{//De plus j'ajoute aussi un nl2br pour prendre en compte les sauts à la ligne dans le message.
echo '<tr>';
echo '<td class="nomC">'.stripslashes($donnees_messages['nom']).'</td>';
echo '<td>'.stripslashes($donnees_messages['prenom']).'</td>';
echo '<td>'.stripslashes($donnees_messages['telephone']).'</td>';
echo '<td>'.stripslashes($donnees_messages['mail']).'</td>';
echo '<td>'.stripslashes($donnees_messages['note']).'</td>';
echo '</tr>';
}
echo '</table>';
echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="index.php?nompage=listeClients&page='.$i.'">'.$i.'</a> ';
}
}
echo '</p>';
}
?>
Et voici ma page avec mon Erreur :
Liste des clients
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in F:\EASY\EasyPHP-5.3.8.1\www\ZEN ATTITUDE\pages\admin\listeClients.php on line 43
Page : 1 2 3
De plus, j'ai essayer le script avec la base de donnée sur une autre page du tuto que je vous ai mis en lien, et il marche parfaitement. Du coup, j'ai fais copier-coller de mon script qui marche sur ma page souhaité et j'ai ce message d'erreur donc je ne comprends absolument pas.
Si vous pouviez m'aider cela serait adorable .
Merci d'avance
Pages : 1