Page 1 sur 1

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

Posté : 12 oct. 2005, 17:57
par kochalski
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>";  
	  }
?>

Posté : 12 oct. 2005, 18:26
par heddicmi
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...)

Posté : 12 oct. 2005, 18:28
par kochalski
oui mais peut tu m'aider à écrire ce script car je suis vraiment nouveau sur le php

D'avance merci

Posté : 12 oct. 2005, 18:31
par heddicmi
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...

Posté : 12 oct. 2005, 18:33
par kochalski
Ok merci pour l'info

Posté : 12 oct. 2005, 18:36
par heddicmi
Ou sinon, un tuto très explicite...

Posté : 12 oct. 2005, 19:36
par Truc
ou encore celui-ci (d'autant plus qu'il est fait par un grand gourou :wink: )

Posté : 12 oct. 2005, 21:39
par kochalski
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

Posté : 12 oct. 2005, 21:49
par Cyrano
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.

Posté : 25 oct. 2005, 10:37
par bercy
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

Posté : 25 oct. 2005, 17:13
par kochalski
Je te remercie. je le teste dès ce soir

Merci

Francis