IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème sur pagination


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut Problème sur pagination
    Bonjour,

    Page suivante ne me retourne rien. Sauriez-vous m'aider svp?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
     
    <form action="" method="GET" name='form_acheter' id='form_acheter'>   
     
       <div id="rooms">   
    	<?php 
    $rooms = isset($_GET['pieces']) ? $_GET['pieces'] : array() ;
    $selected='selected="selected"';
     	?>
        <label for="pieces"  class="tag">Pièces *</label>
        <select multiple="multiple"  name="pieces[]"  class="select" >
        <option value="1"<?php if(in_array('1',$rooms)) echo $selected; ?>>Studio</option>
        <option value="2"<?php if(in_array('2',$rooms)) echo $selected; ?>>2 pièces</option>
        <option value="3"<?php if(in_array('3',$rooms)) echo $selected; ?>>3 pièces</option>
        <option value="4"<?php if(in_array('4',$rooms)) echo $selected; ?>>4 pièces</option>
        <option value="5"<?php if(in_array('5',$rooms)) echo $selected; ?>>5 pièces</option>
        <option value="6"<?php if(in_array('6',$rooms)) echo $selected; ?>>6 pièces</option>
        <option value="7"<?php if(in_array('7',$rooms)) echo $selected; ?>>7 pièces et +</option>
        </select> 
        <br /><br />
     
     
     
        </div>
     
     <label for="city"  class="tag">Ville *</label>
        <select multiple="multiple" name="ville[]" id="ville" size="5" class="select">
     
        <?php 
     
    	include('mysql_connect.php');
        $set =mysql_query("SET NAMES 'utf8'");
        $ville_query= "SELECT DISTINCT v.ville_id, vi.ville_nom FROM marimmo_ventes v 
    	               JOIN marimmo_villes vi ON vi.ville_id = v.ville_id
    		      ORDER BY vi.ville_nom ASC" ;
    	$ville_req = mysql_query($ville_query) or die(mysql_error());
     
            $town = isset($_GET['ville']) ? $_GET['ville'] : array() ;
    	$selected = 'selected="selected"';
     
    	while ($city = mysql_fetch_assoc($ville_req))
    	       { $ville_id = $city['ville_id'];
    		  $ville_nom = $city['ville_nom'];
      ?> <option value="<?php echo $ville_id; ?>"<?php if(in_array($ville_id,$town)) echo $selected; ?>><?php echo $ville_nom; ?></option>
     
        <?php  }?>
        </select>
     
        <span class="error"><?php if(isset($e_ville)) echo $e_ville; ?> </span>
        <br /><br />
     
     
     
        <br /><br />
     <input type="submit" name="submit_rechercher" id="submit_rechercher" value="Rechercher" /> 
     </form>
    <?php
     if(!empty($_GET['submit_rechercher'])) {
     
    if (empty($_GET['ville'])  || empty($_GET['pieces']))
       {  $e_rooms = 'Le champ "Pièces" est requis' ;
         $e_ville = 'Le champ "Ville" est requis' ;
       }
       else {     $rooms=array_map('mysql_real_escape_string',$rooms);
    			  $roomsi=implode(',',$rooms);
     
    			  $town=array_map('mysql_real_escape_string',$town);						 
    			  $towni= implode(',',$town);
     
     
     
                  // puis requêtes SQL :
                    1. qui compte  le nombre de résultats correspondant à ma recherche,   pour pagination
                     2. qui affiche la liste des résultats correspondant.
     
                 // puis 
     
                  $suivant = $current_page+1;
                  $precedent = $current_page-1; 
     
                   if ($nb_pages > 1  ) 
                     { 
                          if ($suivant <= $nb_pages)
                             { ?> <a class='numero_page' 
     href="Untitled-1.php?<?php foreach($_GET['ville'] as $k =>$ville) { echo "ville[]=$ville&"; } ?><?php foreach($_GET['pieces'] as $r =>$pieces) {echo "pieces[]=$pieces&";} ?>page=<?php echo $suivant; ?>">Suivante </a>
          <?php  } 
             else {?> <a class='no_link'>Suivante</a>
        <?php  }      
     
                  }
    }
    L'url sur Page 2 (page Suivante qui est vide de résultats paginés) contient :
    Untitled-1.php?ville[]=%208&ville[]=%2017&ville[]=%2019&ville[]=%2022&ville[]=%2026&ville[]=%2032&pieces[]=1&pieces[]=2&pieces[]=3&pieces[]=4&pieces[]=5&pieces[]=6&pieces[]=7&page=2

    Merci d'avance pour vos belles lumières

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est plus du PHP, c'est du tir au pigeon

    1 - Stocke tes paramètres de recherche dans une session PHP plutôt que de les transporter de page en page dans l'url.
    2 - L'idée d'une pagination c'est de n'afficher qu'une partie des informations, et donc ici, dans la requête de n'extraire que les données entre deux bornes. Simplement avec Mysql on utiliser la clause LIMIT.
    http://antoine-herault.developpez.co...atique-en-php/

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    c'est du tir au pigeon mdr

    *****
    Oh non pas encore !!! J'ai déjà essayé de stocker ça en session, sans succès.
    Merci pour ta réponse, c'est bon c'est l'heure de sauter par la fenêtre !
    Ok t'es en train de me dire que comme seuls et uniques params à passer en url, c'est ordre de tri, $limit, et $per_page, c'est tout. C'est ça? C'est vrai que c'est ce que j'ai vu mais... vu que session sur select multiple ne marchait pas, j'ai rajouté tous les autres.

    Et quand je regarde des sites semblables aux miens, dans l'url, ya tous les éléments du form avec les values sélectionnées.. Bon ok, je vais refaire avec $_SESSION mais.... on m'a dit de en pas faire comme ça !!! aaaaaaaaaahhhhhhhhhh !!!! C'est une conspiration pour me rendre dingo non? on y est presque!

    merci pour ta réponse

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Une URL n'est pas faite pour contenir tout plein de données comme ça mais ton problème est plutôt sur le point 2 : actuellement tu n'as pas traité ta pagination.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    si si, j'ai tout pour la pagination, c'est juste que j'ai raccourci mon code en disant : // requetes COUNT etc

    Look :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    <?php
     if(!empty($_GET['submit_rechercher'])) {
     
    if (empty($_GET['ville'])  || empty($_GET['pieces']))
       {  $e_rooms = 'Le champ "Pièces" est requis' ;
         $e_ville = 'Le champ "Ville" est requis' ;
       }
       else {      $_SESSION['rooms']=$rooms;
                  $roomi=array_map('mysql_real_escape_string',$rooms);
    			  $roomsi=implode(',',$roomi);
     
    			  $_SESSION['town']=$town;		 
    			  $towns =array_map('mysql_real_escape_string',$town);						 
    			  $towni= implode(',',$towns);
     
                    $cool = "SELECT COUNT(ventes_id) as nb_correspondances FROM marimmo_ventes v  WHERE  v.nb_pieces IN (".$roomsi.") AND v.ville_id IN (".$towni.")  ";
                               $cool_rep = mysql_query($cool) or die (mysql_error());
                               $info = mysql_fetch_assoc($cool_rep);          
     
                echo '    <div id="nb_de_resultats">'.$info['nb_correspondances'].' résultats correspondent à votre recherche</div>'."\n";
     
     
                $per_page = 3;
                $nb_pages = ceil($info['nb_correspondances']/$per_page);  
                $current_page = isset($_GET['page']) && ($_GET['page'] > 0) && ($_GET['page'] <= $nb_pages) ? $_GET['page'] : 1;
                $nb_results_limit = ($current_page-1)*$per_page;
     
                $et = mysql_query("SET NAMES UTF8");
                $requete = "SELECT  v.ventes_id, v.titre_a_afficher, v.type_de_bien, v.nb_pieces, v.surface_hab, v.prix_fai, v.descriptif, v.date_de_publication, 
    			            vi.ville_nom, vi.cp, vi.ville_id FROM marimmo_ventes v JOIN marimmo_villes vi ON vi.ville_id = v.ville_id WHERE  v.nb_pieces IN ($roomsi) 
    						AND v.ville_id IN (".$towni.") LIMIT $nb_results_limit,3";
                            $req_answer = mysql_query($requete) or die(mysql_error() );
                $rows= mysql_num_rows($req_answer);
                if ($rows == 0)
    			   { 
                                    $no_correspondance = "Aucun bien ne correspond à ces critères. Veuillez élargir votre recherche.";
                   } else {
                                    while($data = mysql_fetch_assoc($req_answer)) {   
                                            $type_de_bien = $data['type_de_bien'];
                                            $ref=           $data['ventes_id'];
                                            $titre =        $data['titre_a_afficher'];
                                            $nb_pieces =    $data['nb_pieces'];
                                            $surface_hab =  $data['surface_hab'];
                                            $descriptif =   $data['descriptif'];
                                            $ville_nom =    $data['ville_nom'];
                                            $ville_id =     $data['ville_id'];
                                            $cp =           $data['cp'];
                                            $prix =         $data['prix_fai'];  
                                            $prix= number_format($prix, 0, ',', ' ');
                                            $en_date_publication = $data['date_de_publication'];    
                                            $explode_publication= explode("-", $en_date_publication);
                                            $date_de_publication_fr = $explode_publication[2]."-".$explode_publication[1]."-".$explode_publication[0];
     
                                             $min_query= "SELECT min_path FROM marimmo_ventes_pics WHERE vente_prod_id='".$ref."' AND min_path RLIKE 'main' ";
                                             $min_req =mysql_query($min_query) or die(mysql_error());
                                             $min = mysql_fetch_assoc($min_req);
                                             $min_path = $min['min_path'];
                                             $main_min = "admin/".$min_path;                                                                                                       
     
                                            echo  "<div class='annonces'>
                                             <table id='table_mini_description'>
                                              <tr>
                                               <td>
                                                <img class='miniatures_liste' src='".$main_min."'  alt=''/>
                                                <span class='ref_pub'> (Réf.".$ref.") - Annonce publiée le : " .$date_de_publication_fr." </span><br /><br />
                                                <span class='titre_a_afficher'> ".$cp." ".strtoupper($ville_nom)."  </span> <br /><br />
                                                <span class='nb_pieces'> ".$nb_pieces." pièces - ".$surface_hab." m² </span> <br />
                                                <span class='prix'>  ".$prix." eur <br /> </span>      
                                                <span class='details_descript'>" .$descriptif." </span> <br /><br />
                                                
                                               </td>
                                              </tr>
                                             </table>
                                             </div>\n";
     
                                    }          
     
     
    		/************** suite pagination *************************/
     echo "<div id='aller_page'><p id='page_en_cours'> Page ".$current_page." sur ".$nb_pages."</p>";
     
            $suivant = $current_page+1;
            $precedent = $current_page-1; 
     
     
            if($nb_pages > 1  ) 
    		{	   
    		  //  $r = urldecode($_GET['rooms2']); $r=str_replace('"', "'",$r);
    		//	$v= urldecode($_GET['ville2']); $v=str_replace('"', "'",$v);
     
                    echo "<form name='go2page_form' id='go2page_form' method='get' action=''>
                    <label for='gotopage' class='gotopage'> Aller à la page : </label>
                    <input type='text' name='go2page' id='go2page' />
                    <input type='submit' name='submit_go2page' class='submit_ok' value='OK' />
                    </form>";
     
            if(isset($_GET['submit_go2page']) && isset($_GET['go2page']) && !empty($_GET['go2page']) && is_numeric($_GET['go2page'])) { 
     
                    $go2page = htmlentities($_GET['go2page']);
     
                    if($go2page <= $nb_pages) 
    				{	?>	+ tir au pigeon !!
    Ok je réessaye avec ces p...igeon de sessions

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme je t'ai dit, ce n'est pas les sessions qui vont faire marcher ta pagination.

    Tu pourrais nous mettre le code entier bien indenté parce que la c'est difficile de suivre.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Avec plaisir pour reposter mon code, c'est ce que j'allais faire suivi d'un c'est pas bon comme ça, n'est-ce pas ? rrrrrrfff
    Je vais faire de mon mieux pour l'indentation. C'est dommage qu'on puisse pas afficher la fenêtre de code en grand....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
     
    <?php if(isset($_SESSION['rooms'])) {print_r($_SESSION['rooms']); } ?>
    <?php if(isset($_SESSION['town'])) {print_r($_SESSION['town']); } ?>
     
    <form action="" method="GET" name='form_acheter' id='form_acheter'>   
     
       <div id="rooms">   
    	<?php 
            $rooms = isset($_GET['pieces']) ? $_GET['pieces'] : array() ;
            $selected='selected="selected"';
     	?>
     <label for="pieces"  class="tag">Pièces *</label>
        <select multiple="multiple"  name="pieces[]"  class="select" >
        <option value="1"<?php if(in_array('1',$rooms)) echo $selected; ?>>Studio</option>
        <option value="2"<?php if(in_array('2',$rooms)) echo $selected; ?>>2 pièces</option>
        <option value="3"<?php if(in_array('3',$rooms)) echo $selected; ?>>3 pièces</option>
        <option value="4"<?php if(in_array('4',$rooms)) echo $selected; ?>>4 pièces</option>
        <option value="5"<?php if(in_array('5',$rooms)) echo $selected; ?>>5 pièces</option>
        <option value="6"<?php if(in_array('6',$rooms)) echo $selected; ?>>6 pièces</option>
        <option value="7"<?php if(in_array('7',$rooms)) echo $selected; ?>>7 pièces et +</option>
        </select> 
        <br /><br />
        </div>
     
        <label for="city"  class="tag">Ville *</label>
        <select multiple="multiple" name="ville[]" id="ville" size="5" class="select">
     
        <?php 
      	include('mysql_connect_immo.php');
    	$setab =mysql_query("SET NAMES 'utf8'");
            $ville_query= "SELECT DISTINCT v.ville_id, vi.ville_nom FROM marimmo_ventes v 
    	                   JOIN marimmo_villes vi ON vi.ville_id = v.ville_id
    			   ORDER BY vi.ville_nom ASC" ;
    	$ville_req = mysql_query($ville_query) or die(mysql_error());
     
            $town = isset($_GET['ville']) ? $_GET['ville'] : array() ;
    	$selected = 'selected="selected"';
     
           while ($city = mysql_fetch_assoc($ville_req))
    	      { $ville_id = $city['ville_id'];
    		 $ville_nom = $city['ville_nom'];
      ?> <option value="<?php echo $ville_id; ?>"<?php if(in_array($ville_id,$town)) echo $selected; ?>><?php echo $ville_nom; ?></option>
     
        <?php  }?>
        </select>
     
        <span class="error"><?php if(isset($e_ville)) echo $e_ville; ?> </span>
        <br /><br />
     
     
     
        <br /><br />
         <input type="submit" name="submit_rechercher" id="submit_rechercher" value="Rechercher" /> 
         </form>
     
     
     
     
     
     
    <?php
     if(!empty($_GET['submit_rechercher'])) 
      {
     
    if (empty($_GET['ville'])  || empty($_GET['pieces']))
       {  $e_rooms = 'Le champ "Pièces" est requis' ;
         $e_ville = 'Le champ "Ville" est requis' ;
       }
       else {      $_SESSION['rooms']=$rooms;
                     $roomi=array_map('mysql_real_escape_string',$rooms);
    		 $roomsi=implode(',',$roomi);
     
    		 $_SESSION['town']=$town;		 
    		 $towns =array_map('mysql_real_escape_string',$town);						 
    		 $towni= implode(',',$towns);
     
                    $cool = "SELECT COUNT(ventes_id) as nb_correspondances FROM marimmo_ventes v  WHERE  v.nb_pieces IN (".$roomsi.") 
                               AND v.ville_id IN (".$towni.")  ";
                               $cool_rep = mysql_query($cool) or die (mysql_error());
                               $info = mysql_fetch_assoc($cool_rep);          
     
                echo '    <div id="nb_de_resultats">'.$info['nb_correspondances'].' résultats correspondent à votre recherche</div>'."\n";
     
     
                $per_page = 3;
                $nb_pages = ceil($info['nb_correspondances']/$per_page);  
                $current_page = isset($_GET['page']) && ($_GET['page'] > 0) && ($_GET['page'] <= $nb_pages) ? $_GET['page'] : 1;
                $nb_results_limit = ($current_page-1)*$per_page;
     
                $et = mysql_query("SET NAMES UTF8");
                $requete = "SELECT  v.ventes_id, v.titre_a_afficher, v.type_de_bien, v.nb_pieces, v.surface_hab, v.prix_fai, v.descriptif, 
                                v.date_de_publication, vi.ville_nom, vi.cp, vi.ville_id 
                                FROM marimmo_ventes v 
                                JOIN marimmo_villes vi ON vi.ville_id = v.ville_id WHERE  v.nb_pieces IN ($roomsi) 
    			   AND v.ville_id IN (".$towni.") LIMIT $nb_results_limit,$per_page";
     
                $req_answer = mysql_query($requete) or die(mysql_error() );
                $rows= mysql_num_rows($req_answer);
     
             if ($rows == 0)
    	   {  $no_correspondance = "Aucun bien ne correspond à ces critères. Veuillez élargir votre recherche.";
               }
         else {
                                    while($data = mysql_fetch_assoc($req_answer)) {   
                                            $type_de_bien = $data['type_de_bien'];
                                            $ref=           $data['ventes_id'];
                                            $titre =        $data['titre_a_afficher'];
                                            $nb_pieces =    $data['nb_pieces'];
                                            $surface_hab =  $data['surface_hab'];
                                            $descriptif =   $data['descriptif'];
                                            $ville_nom =    $data['ville_nom'];
                                            $ville_id =     $data['ville_id'];
                                            $cp =           $data['cp'];
                                            $prix =         $data['prix_fai'];  
                                            $prix= number_format($prix, 0, ',', ' ');
                                            $en_date_publication = $data['date_de_publication'];    
                                            $explode_publication= explode("-", $en_date_publication);
                                            $date_de_publication_fr = $explode_publication[2]."-".$explode_publication[1]."-".$explode_publication[0];
     
                                             $min_query= "SELECT min_path FROM marimmo_ventes_pics WHERE vente_prod_id='".$ref."' AND min_path RLIKE 'main' ";
                                             $min_req =mysql_query($min_query) or die(mysql_error());
                                             $min = mysql_fetch_assoc($min_req);
                                             $min_path = $min['min_path'];
                                             $main_min = "admin/".$min_path;                                                                                                       
     
                                            echo  "<div class='annonces'>
                                             <table id='table_mini_description'>
                                              <tr>
                                               <td>
                                                <img class='miniatures_liste' src='".$main_min."'  alt=''/>
                                                <span class='ref_pub'> (Réf.".$ref.") - Annonce publiée le : " .$date_de_publication_fr." </span><br /><br />
                                                <span class='titre_a_afficher'> ".$cp." ".strtoupper($ville_nom)."  </span> <br /><br />
                                                <span class='nb_pieces'> ".$nb_pieces." pièces - ".$surface_hab." m² </span> <br />
                                                <span class='prix'>  ".$prix." eur <br /> </span>      
                                                <span class='details_descript'>" .$descriptif." </span> <br /><br />
                                                
                                               </td>
                                              </tr>
                                             </table>
                                             </div>\n";
     
                                    }        
     
     
    		/************** suite pagination *************************/
     echo "<div id='aller_page'><p id='page_en_cours'> Page ".$current_page." sur ".$nb_pages."</p>";
     
            $suivant = $current_page+1;
            $precedent = $current_page-1; 
     
     
            if($nb_pages > 1  ) 
    		{	   
     
                    echo "<form name='go2page_form' id='go2page_form' method='get' action=''>
                    <label for='gotopage' class='gotopage'> Aller à la page : </label>
                    <input type='text' name='go2page' id='go2page' />
                    <input type='submit' name='submit_go2page' class='submit_ok' value='OK' />
                    </form>";
     
                      if (isset($_GET['submit_go2page']) && isset($_GET['go2page']) && !empty($_GET['go2page']) && is_numeric($_GET['go2page']))
    		   {              
                         $go2page = htmlentities($_GET['go2page']);
     
                          if ($go2page <= $nb_pages) 
    			{	?>		                            
                           <script type='text/javascript'>
    document.location.replace('?nb_results=<?php echo $nb_results_limit ?>&page=<?php echo $go2page; ?>');
                           </script>
                  <?php   }
                          }    
     
    		     if ($precedent >= 1) 
    		        {?> <a class='numero_page' href='Untitled-1.php?nb_results=<?php echo $nb_results_limit; ?>&page=<?php echo $precedent; ?>'>Précédente </a>
    	      <?php  }
    	          else {?> <a class='no_link'> Précédente</a>         
    	       <?php } 
     
     
    		    if ($suivant <= $nb_pages)
    		       {?> <a class='numero_page' href="Untitled-1.php?nb_results=<?php echo $nb_results_limit; ?>&page=<?php echo $suivant; ?>">Suivante </a>
    	      <?php  } 
    		 else {?> <a class='no_link'>Suivante</a>
    	     <?php  }      
     
     
            echo "</div>";
     
    		} 
     
     
    							} /// fin de else (if $rows != 0) 	
     
    		} 	
    	 }
    ?>
    Rhoo j'ai tout aligné nickel, et une fois posté, le code n'est plus droit !!! bref ça quand même va comme ça ? et qu'est-ce que je fais de travers encore, merci !!!

    PS: Quand j'utilise le bbcode INDENT ça écrit <div style : margin-left =40px> au lieu de faire l'indent demandé...

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il manque "submit_rechercher" dans tes liens suivant/précédent.

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Hein ???? Tu conspires lol ou c'est moi ?
    submit_rechercher est le name de <input type="submit" name="submit_rechercher" value="Rechercher">

    C'est vrai ça ???? (ça fait pas longtemps que je fais du php, donc... on peut encore tout à fait me rouler dans la farine) T'es sûr ? et je mets quoi ? if (isset($_GET['submit_rechercher)) {$submit_rechercher = quoi ???; }

    u're kidding me ? ou tu t'es trompé ? ou j'ai vraiment rien compris du tout !!!.??? // Comment je passe ça dans l'url... alors là...... larguée quoi

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    nb_results dans l'url à présent me retourne 0. Je n'ai aucun isset($nb_results)? $nb_results_limit : ""; dans mon code actuel,

    (Mon code actuel est est un mini code avec juste 2 select multiples et 1 bouton submit, alors que mon vrai code est un form bien plus long. Mais pour débugger + facilement j'ai fait un code plus court, c'est à dire celui que j'ai posté).

    Est-ce ça vient de là ? ou tu me disais juste ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a class='numero_page' href="Untitled-1.php?nb_results=<?php echo $nb_results_limit; ?>&page=<?php echo $suivant; ?>&per_page=<?php echo $per_page; ?>">Suivante </a>

    Merci, i need some help

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as une condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET['submit_rechercher']))
    cette condition est effectivement validée lorsque tu soumets le formulaire de recherche puisqu'il contient bien le champ 'submit_rechercher'

    Mais quand tu cliques sur ton lien suivant, il n'y a plus de "submit_rechercher"
    Donc tu ne passes plus ta condition.
    Donc il faut ajouter le paramètre "submit_rechercher" dans ton lien.

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Ok, je viens de faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class='numero_page' href="Untitled-1.php?submit_rechercher=<?php echo $_GET['submit_rechercher']; ?>&nb_results=<?php echo $nb_results_limit; ?>&per_page=<?php echo $per_page; ?>&page=<?php echo $suivant; ?>">Suivante </a>
    L'url, on click sur Suivante me donne : /Untitled-1.php?submit_rechercher=Rechercher&nb_results=0&per_page=3&page=2
    mais ma page Suivante reste vide pour la 15'000e fois Où est la fenêtre ???

    Merci

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Au fait, non rien...

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quand tu dis "vide" c'est complétement vide ?
    Tu ne vois meme plus le formulaire ?

    Untitled-1.php c'est le fichier que tu nous montres ?
    Commence par lui donner un nom correct le pauvre.

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Oh il est trop vilain et pas gentil pour que je lui donne un nom. Mon vrai code (100 fois plus long s'appelle acheter.php). Mais bon si ça peut arranger les choses je vais l'appeler (le mini code) "code_beau.php" . On sait jamais, la flatterie ça peut peut-être aider !

    Oui Untitled.php aka code_beau.php est le code que j'ai posté.


    Quand je dis vide, ça veut dire que le form reste, mais les résultats paginés sont absents ! et les absents ont toujours tort !!!!

    EDIT : Le form présent sur page suivante, n'a pas ses options sélectionnées selected.
    Elles l'étaient en passant les infos concernant les select multiples par l'url.
    Que c'est compliquéééé !!!!

    _________
    Est-ce que tu as vu ce que je disais? : sur le nombre de résultats à afficher qui retourne 0 dans l'url... // LIGNE 88 dans mon post, $nb_results_limit = ($current_page-1)*$per_page;
    Là je suis aveugle vu le nombre d'heures passée dessus, donc peut-être que toi tu verras direct ce qui foire là-dedans? En te remerciant pour yur support,

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je te propose de revenir à tes paramètres dans l'url.
    Parce que la tu as mis un peu de session à certains endroits et laissé du $_GET à d'autre donc forcemment ça ne peut pas fonctionner.
    Comme je t'ai dit ce point n'est pas important pour la pagination donc ne perdons pas de temps la dessus.

  17. #17
    Nouveau membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Juin 2014
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Juin 2014
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Résolu, en enlevant if(isset($_REQUEST['submit_rechercher'])) avec en effet mes params dans les links vers pages de résultats. C'était donc ça ?!?!?!!!
    Alleluyah. Cependant, au vu de mon code précédent auquel j'ai juste retiré le if(isset($_REQUEST['submit_rechercher'])) , peux-tu me confirmer que mon code est safe et "impénétrable", ou il me reste encore des vérifs de protection à faire et où?
    Merci merci

Discussions similaires

  1. Problème sur la recherche fulltext en v4 !
    Par poppa dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/05/2004, 23h06
  2. Problème sur fiche MDIchild
    Par nivet dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/01/2004, 08h07
  3. Problème sur GetPrivateProfileString ???
    Par Bordelique dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2003, 22h15
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo