Soucis avec '' page suivante '' demande aide.!!!

Eléphant du PHP | 108 Messages

12 oct. 2005, 17:57

Bonsoir à tous,

Cela fait plus d'une semaine que je galère sur ce script....

Quand l'internaute sélectionne un produit en particulier et qu'il y a plus de 100 résultats dans la bdd, je voudrais avoir que 5 résultats par page, et en cliquant sur 'suivant', afficher la suite.

Pour ma 1° page de résultat, ça fonctionne mais pour la page suivante, il m'affiche la totalité de ma bdd. Quand je clique sur page précedente =idem.

Pourriez vous m'aider !!!!! je ne m'en sort plus.
Merci.
<?PHP
	$parpage=5;
	if(!isset($page)){
	$page=1;
	}
    $db_connection=mysql_connect('localhost','root','');
    $db=mysql_select_db("business");  
    $nbnomsociete=$nbnomsociete[0];             
    $db_table=mysql_query("select * from coordonnees WHERE nomsociete like '%$nomsociete%'") ;  
    $nbnomsociete=mysql_numrows($db_table);              
       if($nbnomsociete>=1){     
           echo"<center><FONT COLOR=\"red\">Il y a $nbnomsociete résultat(s) à votre recherche<br><br>";   
           }  
      if($nbnomsociete==0){
           echo"<center><FONT COLOR=\"red\">Aucun résultat à votre recherche<br><br>";   
          }
	  $j=0;
	 while($j<($page-1)*$parpage){
		if(!$ligne=mysql_fetch_array($db_table)){
		echo "page non existante";
		$j++;
		}
	    }
    for($i=0;$i<$j+5;$i++){	  
             while($ligne=mysql_fetch_array($db_table)){                        
                $nomsociete_ligne=$ligne['nomsociete'];
                $civilite_ligne=$ligne['civilite'];
                $nom_ligne=$ligne['nom'];
                $prenom_ligne=$ligne['prenom'];        
                echo"$nomsociete_ligne<br>";
                echo"$civilite_ligne<br>"; 
                echo"$nom_ligne<br>";
                echo"$prenom_ligne<br>";      
       } 
       }
      if($page>1){
	  echo "<a href='business_resultat_annonces.php?page=$page-1. && nomsociete_ligne=$nomsociete_ligne '>Page précédente</a>";
	  }
      if($ligne=mysql_fetch_array($db_table)){
	  echo "<a href='business_resultat_annonces.php?page=$page+1 && nomsociete_ligne=$nomsociete_ligne '>Page suivante</a>";  
	  }
?>

Mammouth du PHP | 568 Messages

12 oct. 2005, 18:26

Pour déterminer les résultats à afficher, utilise plutôt la fonction LIMIT sur ta requête...

Ici, LIMIT 0, 5 (5 étant le nombre d'enregistrements que tu souhaites, et 0 la valeur à faire varier pour choisir à partir de quel enregistrement ça commence, donc tu le fais varier de 0, 5, 10, 15, 20, etc... Dans le liens pages suivantes, tu luis dis d'afficher à partir de +5 que la position actuelle... -5 pour les précédents...)
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 108 Messages

12 oct. 2005, 18:28

oui mais peut tu m'aider à écrire ce script car je suis vraiment nouveau sur le php

D'avance merci

Mammouth du PHP | 568 Messages

12 oct. 2005, 18:31

Ecrire non, car j'ai moi ausi du travail figure toi... Alors si je dois faire en plus le travail des autres :roll:

Mais tu as le droit de faire une recherche sur le forum sur les terme navigation page limit.. Et tu trouveras surement des exemples...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 108 Messages

12 oct. 2005, 18:33

Ok merci pour l'info

Mammouth du PHP | 568 Messages

12 oct. 2005, 18:36

Ou sinon, un tuto très explicite...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 oct. 2005, 19:36

ou encore celui-ci (d'autant plus qu'il est fait par un grand gourou :wink: )

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 108 Messages

12 oct. 2005, 21:39

J'ai regardé les tutos que l'on m'a proposé mais le problème est que j'ai commencé à apprendre le php avec esasyphp version 1.6.
Donc je n'arrive pas à régler mon soucis avec la nouvelle version..

Je vous relance mon script, je pense qu'il doit avoir une erreur mais ou ??

aidez moi MERCI

Francis

Mammouth du PHP | 19672 Messages

12 oct. 2005, 21:49

Ce n'est pas un problème de version de EasyPHP : ça, c'est un ensemble composé d'un serveur http, d'un SGBD et de PHP: rien à voir avec ton codage sauf bien entendu pour certaines directives qui peuvent changer, mais ça ne changera certainement pas un code qui ne fonctionnait pas correctement en code qui marche ou inversement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 36 Messages

25 oct. 2005, 10:37

Moi j'utilise cela c'est très basic, mais cela fonctionne bien.

Crée une page php qui se nomme ta_page.php avec le code suivant:
//Connection a la base de donnee  en mode utilisateur
mysql_connect("Host","User","Pass");

//definition du nombre de resultat a afficher ici 4
$nbligne=4;

// tu recuperes le nombre de resultats et de pages 
$result=mysql("ta_base","SELECT * FROM ta_table");
$nb = mysql_numrows($result);
$nbpage=$nb/$nbligne;

//requete d affichage
if($debut){
$result2=mysql("ta_base","SELECT * FROM ta_table LIMIT $debut,$nbligne");}
else{
$result2=mysql("ta_base","SELECT * FROM ta_table LIMIT 0,$nbligne");}

//affichage du n° de  page
if($page)
     {
              echo" page n° $page";
      }

//boucle d affichage des resultats
while ($row  =  mysql_fetch_row($result2))
      {
                $var1=$row[0];
                $var2=$row[1];
                echo" $var1 -$var2";
      }

//tu crees les liens de navigation page1 a page x
for ($j = 0; $j < $nbpage; $j++)
      {
              $page = $j + 1;
              $deb = $nbligne * $j;
              echo"<ahref=ta_page.php?debut=$deb&page=$page>$page</a>";
      }

//Deconnection de la base de donnee
mysql_close();
Bon courage

Eléphant du PHP | 108 Messages

25 oct. 2005, 17:13

Je te remercie. je le teste dès ce soir

Merci

Francis