PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » Problème pagination » 24-01-2012 15:34:41

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

#2 Re : Forum Général PHP » Problème pagination » 24-01-2012 15:34:41

Peut-être bien, mais je souhaiterai résoudre mon problème

#3 Re : Forum Général PHP » Problème pagination » 24-01-2012 15:34:41

Oui mais quand je mets $_GET['page'] aucune données ne s'affiche

#4 Re : Forum Général PHP » Problème pagination » 24-01-2012 15:34:41

C'est pour convertir le numéro de la page en entier, mais effectivement je ne pense pas que cela serve à grand chose ici.

#5 Re : Forum Général PHP » Problème pagination » 24-01-2012 15:34:41

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é :

<h1> Liste des clients </h1> 
<?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['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>';
}
?>

#6 Re : Forum Général PHP » Problème pagination » 24-01-2012 15:34:41

J'obtiens ceci

Erreur de syntaxe près de '-5, 5' à la ligne 1

#7 Re : Forum Général PHP » Problème pagination » 24-01-2012 15:34:41

D'après le message d'erreur, ça serait cette ligne :

while($donnees_messages=mysql_fetch_array($retour_messages))

#8 Re : Forum Général PHP » Problème pagination » 24-01-2012 15:34:41

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.

#10 Forum Général PHP » Problème pagination » 24-01-2012 15:34:41

soft57
Réponses : 17

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 :

<h1> Liste des clients </h1> 
<?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 big_smile.
Merci d'avance

Pied de page des forums

Propulsé par FluxBB