Erreur sur un script PHP affichant plusieurs

Erreur sur un script PHP affichant plusieurs - PHP - Programmation

Marsh Posté le 26-02-2013 à 20:18:20    

Bonjour a tous,
J'ai téléchargé un script de petites annonces que j'essaye de faire évoluer mais je suis devant un problème que je n'arrive pas à régler.
Je m'explique :
J'ai 16 annonces à afficher et je souhaiterais découper l'affichage 10 par 10.
Il m'affiche bien 2 pages avec la première contenant 10 annonces mais lorsque je clique sur la page 2, il revient en haut de la page et j'ai toujours la première page sélectionnée et les 10 premières annonces affichées.
Ci-dessous le code avec le nombre de sujet à 20 pour régler provisoirement mon problème et le lien de ma page http://lesmotardsdu47.fr/annonces/ [...] ine&page=1 :
 
<?php
 
$nbsujet = 20;
 
if ($page =="" ){$page = 1 ;}
 
$adminsup = 'novarible1';
$login = 'novariable2';
$adminvalide = 'novarible3';
$loginadmin = 'novarible4';
               
$dir2 = opendir(''.$_GET['region'].'/petite-annonce/');
 
$timeStamp = array();
$fichier = array();
 
$i=0;
$getpages=0;
while ($File = readdir($dir2)){
                                if($File != "." && $File != ".." && $File != "" && $File != ".htaccess" && $File != "moteur.php" && $File != "index.php" && $File != "index.html" )
                                  { $getpages++;
 
                                    $timeStamp[] = filectime(''.$_GET['region'].'/petite-annonce/'.$File.'');
                                    $fichier[] =  ''.$_GET['region'].'/petite-annonce/'.$File.'';
                                  }
            $i++;  
      }
 
closedir($dir2);
 
if ($getpages == 0) {
echo '<br><br><br><br><center><b>Désolé mais il n\'y a pas encore d\'annonces dans cette catégorie<br> cliquez sur <a href="../depose-annonce.php">"Déposer une annonce"</a> pour ajouter votre annonce dans cette catégorie.</b></center>';
}
else
{
 
function check($value, $result){
     
        if(in_array($value, $result))
 
            $value = $value+0.1;
         
         
        if(!in_array($value, $result))
         
            return $value;
             
        else  
             
        return check($value, $result);
         
    }
 
 
    //New Array
    $result = array();
     
     
    foreach($timeStamp as $value){
         
        $result[] = check($value, $result);
     
    }
 
   
 
$tableau = array_combine($result, $fichier);
 
krsort($tableau);
 
$tableau = array_values($tableau);
 
$Max = count($tableau);
 
$pagemin = $page*$nbsujet-$nbsujet;
$nbpage = $Max/$nbsujet;
$nbpage = ceil($nbpage);
   if ($page == $nbpage) {$pagemax = $Max;}
           else {$pagemax = $page*$nbsujet;}
 
 if ($Max != 0){
for($i = $pagemin; $i != $pagemax; $i++){
                                include "$tableau[$i]";
 
                                        }
    }
 
 
$nbpage = $Max/$nbsujet;
$nbpage = ceil($nbpage);
$nbpage2 = $nbpage +1 ;
 
for ($i = 1 ; $i <= $nbpage ; $i++) {
  if ($i < ($page-10) )
    $i = $page - 10;
        if ($i >= $page + 10 AND $i <= $nbpage - 10)
                echo "...";
  if ($i > ($page+4) )
    $i = $nbpage ;
  if ($i == $page )
    echo '<a href="petite-annonce.php?region='.$_GET['region'].'&page='.$i.' "class="liens02"><b>['.$i.']</b></a>&nbsp;&nbsp;';
  else
  echo '<a href="petite-annonce.php?region='.$_GET['region'].'&page='.$i.' "class="liens02"><b>'.$i.'</b></a>&nbsp;&nbsp;';
 }
 
 
//fin de else
}
 
 
 
?>  
 
En vous remerciant d'avance,
Claude

Reply

Marsh Posté le 26-02-2013 à 20:18:20   

Reply

Marsh Posté le 26-02-2013 à 20:31:23    

Je viens de passer le nombre de sujet de 20 à 10 pour que vous puissiez voir l'erreur sur la page affichée dans le premier post


Message édité par claude47550 le 26-02-2013 à 20:31:49
Reply

Marsh Posté le 27-02-2013 à 11:22:23    

ça viendrait pas du début  
 
Du style  
 

Code :
  1. <?php
  2. $nbsujet = 20;
  3. if ($_GET['page'] == "" ){$page = 1 ;}


 
Sinon ton $page sera toujours à 1... il me semble


---------------
Topic Ach/Vds/Ech jeux vidéo
Reply

Marsh Posté le 27-02-2013 à 12:30:50    

Un grand merci à toi car effectivement il ne récupérait pas la valeur de la page, donc j'ai modifié le code par :
 
$nbsujet = 10;
$page=$_GET['page'];
if ($page =="" ){$page= 1;}
 
et là ça fonctionne.
Encore merci

Reply

Marsh Posté le 27-02-2013 à 12:58:32    

Reply

Marsh Posté le 15-04-2014 à 00:47:24    

Bonjour,
 
je rencontre exactement le même cas, mais malgré le changement, rien à faire, en général, j'aime bien me débrouiller seul, j'ai rencontré plusieurs fois des problèmes avec le dossier, mais là ! Je suis à côté d'un problème qui je suis certain, est sous mon nez.
 
voici la page http://colec.fr/Annonce/region/pet [...] nce&page=1
 
Le code php actuellement en place
 
echo '0';
 
}
 
else
 
{
 
echo $getpages1;
 
}
 
 
 
echo ' Annonces / <a href=annonce-prix.php?region='.$_GET['region'].'&page=1 class="lien">Trier par prix</a></p>';
 
 
 
 
 
?>
            </td>
          </tr>
        </tbody>
      </table>
      <br>
      <br>
      <br>
<?php $nbsujet = 20;
 
 
 
if ($page =="" ){$page = 1 ;}
 
 
Par avance merci
A plus  :hello:

Reply

Marsh Posté le 15-04-2014 à 10:10:02    

Petit conseil : faire plutôt  
if (empty($page)) $page= 1;
 
Par ailleurs, je vois que tu fonctionnes par des fichiers pour les annonces. Une BD t'offrirait de bien meilleurs perfs et surtout, pour paginer tes annonces, ça serait bien plus facile puisque le SQL propose une instruction pour récupérer les x enregistrements à partir d'un offset ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-04-2014 à 19:11:20    

:hello:  :hello:  
ça fonctionne :)
 
Merci beaucoup

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed