Plusieurs $_GET

Résolu
Bonjour,
J'aimerais passer plusieurs paramètres dans mon url, q de recherche ou filtre et page pour la pagination.

Je n'ai pas encore gérer le cas ou q n'existerait pas.

<?php
$urlq= '?q='.$_GET['q'];
?>

Et la pagination :

<?php
echo '<p>[ Page :';
// Boucle sur les pages
for ($i = 1 ; $i <= $nb_pages ; $i++) {
	if ($i == $page )
		echo " $i";
	else
		echo " <a href=\"$urlq?page=$i\">$i</a> ";
}
echo ' ]</p>';
?>


Le script déconne dès la page 2 au niveau du choix de la page (il me dit que je suis sur la page1)

http://img11.hostingpics.net/pics/573548page2.jpg

et à la page 3 le bordel vient même dans l'URL

http://img11.hostingpics.net/pics/865513page3.png

Merci à vous !

5 réponses

  1. bonjour

    pour séparer plusieurs variable get il faut utiliser & et non ?

    ? annonce le début de la chaine query

    et & sépare les variable

    monsite.fr?var1=unevaleur&var2=unesecondevaleur
    1. Bonjour,
      EN définnissant ta variable urlq comme cela :
      <?php 
      if($_GET['q'])  $urlq= '?q='.$_GET['q'].'&'; else $urlq='?' 
      ?>


      Tu as directement le bon séparateur, il ne te reste donc plus qu'à côllé cette variable avec le page=$i

      edit : correction
      1. J'ai moi-même fais une petite faute :

        if($_GET['q']) $urlq= '?q='.$_GET['q'].'&'; else $urlq='?'

        est légèrement plus propre.
        ça t'évite d'avoir un paramètre vide dans ton url, même si ce n'est pas gênant en soi.
        1. Quel idiot suis-je...

          Ceci fonctionne à merveille :

          <?php
          $urlq= '?q='.$_GET['q'].'&';
          ?>
          
          ?>
          echo '<p>[ Page :';
          // Boucle sur les pages
          for ($i = 1 ; $i <= $nb_pages ; $i++) {
          	if ($i == $page )
          		echo " $i";
          	else
          		echo " <a href=\"
          		$urlq
          		page=$i\">$i</a> ";
          }
          echo ' ]</p>';
          ?>
          
          


          Merci beaucoup.
          1. Oui, merci, ceci fonctionne pour le cas ou $_GET['q'] n'existe pas.

            On a donc le code final :

            <?php 
            if (isset($_GET['q'])){ 
             $urlq= '?q='.$_GET['q'].'&'; 
            } 
            else{ 
             $urlq='&'; 
            } 
            ?> 
            
            <?php 
            echo '<p>[ Page :'; 
            // Boucle sur les pages 
            for ($i = 1 ; $i <= $nb_pages ; $i++) { 
             if ($i == $page ) 
              echo " $i"; 
             else 
              echo " <a href=\"$urlq 
              page=$i\">$i</a> "; 
            } 
            echo ' ]</p>'; 
            ?>


            Merci encore et bonne journée à vous !