Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1612 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Erreur sur un script PHP affichant plusieurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur sur un script PHP affichant plusieurs

n°2177658
claude4755​0
Posté le 26-02-2013 à 20:18:20  profilanswer
 

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

mood
Publicité
Posté le 26-02-2013 à 20:18:20  profilanswer
 

n°2177659
claude4755​0
Posté le 26-02-2013 à 20:31:23  profilanswer
 

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
n°2177716
Buldozerbe​n
Shizofan !
Posté le 27-02-2013 à 11:22:23  profilanswer
 

ç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
n°2177733
claude4755​0
Posté le 27-02-2013 à 12:30:50  profilanswer
 

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

n°2177737
Buldozerbe​n
Shizofan !
Posté le 27-02-2013 à 12:58:32  profilanswer
 
n°2225065
thecollect​ionneur
La collection, ça a du bon
Posté le 15-04-2014 à 00:47:24  profilanswer
 

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:

n°2225095
rufo
Pas me confondre avec Lycos!
Posté le 15-04-2014 à 10:10:02  profilanswer
 

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
n°2225555
thecollect​ionneur
La collection, ça a du bon
Posté le 19-04-2014 à 19:11:20  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Erreur sur un script PHP affichant plusieurs

 

Sujets relatifs
Besoin d'aide Script PHP/SQLErreur d'execution '9' : L'indice n'appartient pas à la sélection
je peut Récupérer une variable Javascript dans une variable PHPexécution script Perl sous mac impossible
[AHK] recherche un script multibind AutoHotkeychanger les couleurs d'un site via Js et PHP
Recherche script ou une aide pour la création d'un script.ajouter une exeption a mon script
Php mail depuis une adresse hotmail (From:) -> spam 
Plus de sujets relatifs à : Erreur sur un script PHP affichant plusieurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR