Catalogue

Signaler
Messages postés
20
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
14 octobre 2009
-
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
-
salut à tous,
 je ve realiser un catalogue ou je recupere les images et les references des produit depuis la base de données, je suis parvenu à afficher toutes les variables dans un tableau , mais,
mon problème c ke je ve faire de sorte chaque ligne de ce tableau ne comprend k 3 cellules
(donc trois produit )et pour chaque page je met une limite d'affichage pour que je respecte la mise en page.
s'il vous plait quelqu'un peut m'aider à regler ceci ?
merci d'avance.
voila mon code :

   ----

   
   <?
 
   $designation=$_GET['designation_categorie'];
   
$requete3 =\" SELECT id_categorie FROM categorie where designation_categorie=
'$designation' \" ;
   $res=mysql_query($requete3) or die (\"erreur req1 \".mysql_error());
    while ($recup3=mysql_fetch_row($res))
    {
    $id_categorie=$recup3['0'];
   
   
    }
 
   
 $requete1 =\"select p.id_pdt, c.id_categorie,  p.photo_pdt, p.reference_pdt,  p.designation_pdt  , c.designation_categorie  from produit p, categorie c
   where p.id_categorie=c.id_categorie
   and c.id_categorie='\".$id_categorie.\"' ;\";
   $resultat=mysql_query($requete1) or die(\"erreur req2\".mysql_error());
   while ($recup=mysql_fetch_row($resultat))
   {
  
  
   $id_pdt=$recup[0];
   $id_categorie=$recup[1];
   $designation_pdt=$recup[4];
   $photo_pdt=$recup[2];
   $photo_pdt=addslashes($photo_pdt);
   $reference_pdt=$recup[3];
  
  
  
   ?>
       <TABLE border="1" align="center" class="tableau">
    ----

     
     , <? echo $designation_pdt ; ?></td>
    
     ----

      " />,
     
     ----

      <? echo $reference_pdt ; ?>,
   
  
  

  
   </td>
  
   <?php
  
   }  
   ?>
    
  </tr>
  </table>

22 réponses

Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
pour ne recuperer que un certain nombre d'enregistrement dans ta base tu peux faire une requete comme ceci :
select * from ta_table where blabla LIMIT 0,6
la ca te recupere les 6 premiers enregistrements pour recuperer les 6 suivant tu fera LIMIT 6,12

j'espere t'avoir aider


Personne ne peut se permettre de juger l'autre....
Messages postés
20
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
14 octobre 2009

salut,
merci pour ton aide,
mais j'ai toujours un probleme, lorsque j'execute la requete ça m'affiche le resultat de façon que chaque enregistrement correspond à une ligne, mais moi je veux k chaque enregistrement soit affiché dans une cellule de tableau, et chaque ligne de ce tableau contient 3 cellue , comme à peu pré le resultat qui s'affiche sur ce lien http://www.webdistrib.com/cat/informatique-__c_9.html
j'espere etre un peu plus clair.
encore merci pour ton aide
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
essaye de faire ton 2eme while de cette facon :
$nb = 0;
while ($recup=mysql_fetch_row($resultat)){
if ($nb==3){
      $nb=0;
      echo "</tr><tr>";
  }else{
ton tableau pour remplir les colonnes
}
et juste un conseil essaye de toujours utiliser les balises <?php ?> et non <? ?>
voila j'espere t'avoir aider


Personne ne peut se permettre de juger l'autre....
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
esxuse moi dans le else j'ai oublié :
$nb = $nb + 1;


Personne ne peut se permettre de juger l'autre....
Messages postés
20
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
14 octobre 2009

merci beacoup , pour ton aide, ça marche très bien ,
maintenant je n'ai qu'a casser ma tete un peu pour y mettre un script de pagination
merci encore
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
de rien n'hesite pas si tu a besoin d'aide...
bonne continuation


Personne ne peut se permettre de juger l'autre....
Messages postés
20
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
14 octobre 2009

s'il te plait, est ce que t pe m'aider sur ceci,
je veu faire la pagination de mon catalogue mais  quand je clique sur le lien ppour la page suivante j'ai toujours des erreurs de reconnaissance de variables(undefinded variable (designation_categorie, id_categorie, t)!!
merci et desolé pour le derangement  :)

voila le code
   <?php

   $designation= $_GET['designation_categorie'];

     
$requete3 =" SELECT id_categorie FROM categorie where designation_categorie=
'$designation' " ;
   $res=mysql_query($requete3) or die ("erreur req1 ".mysql_error());
    while ($recup3=mysql_fetch_row($res))
    {
    $id_categorie=$recup3['0'];
$debut=$_GET['debut'];
 $designation_categorie=$_GET['designation_categorie'];

$maxenreg = "10";
   
$maquery = "SELECT * FROM produit order by id_pdt"; //selection de tous les pdts

$query1 = "$maquery"; 
$result = mysql_query($query1) or die("erreur selection".mysql_error());
$monnbr = mysql_num_rows($result);
   
if ($debut)
{
$nbr = $debut + $maxenreg - 1;
$mondebut=$debut - 1;
$query2 = "$maquery LIMIT $mondebut,$nbr";
$result2 = mysql_query($query2);
}   
   
else
{
$nbr=$maxenreg;
$query2 = "$maquery LIMIT 0,$nbr";
$result2 = mysql_query($query2);
}
   
 $requete1 ="select p.id_pdt, c.id_categorie,  p.photo_pdt, p.reference_pdt,  p.designation_pdt  , c.designation_categorie  from produit p, categorie c
   where p.id_categorie=c.id_categorie
   and c.id_categorie='".$id_categorie."'
  ;";
   $resultat=mysql_query($requete1) or die("erreur req2" .mysql_error());
   while ($recup=mysql_fetch_array($resultat))
   {
  
  
  $id_pdt=$recup[0];
   $id_categorie=$recup[1];
   $designation_pdt=$recup[4];
   $photo_pdt=$recup[2];
   $photo_pdt=addslashes($photo_pdt);
   $reference_pdt=$recup[3];
  
   $t[] = $recup;
   }
   ?>
  
  
        <?php
     $n = 3; // nb de colonne
     for($i = 0; $i <= (count($t) - 1); $i ++) {
     if ($i % $n == 0) {
     ?>----

     <?php
     }
     ?>
        <?php
     echo '
';
     echo $t[$i]['designation_pdt'].'
';
     echo $t[$i]['reference_pdt'].'
';
     // etc.....
     ?>,
     <?php
     if ($i % $n == (2)) {
     ?>
     <?php
     }
     }

     ?>
    

   
     
 
  
 
 <?
 
$nbrpage1 = number_format($monnbr / $maxenreg);
$nbrpage = $nbrpage1 + 1;
echo ("<< :");

for ( $i = 1; $i <= $nbrpage; $i++ )
{
$debut = ((($i - 1) * 10) + 1);
echo (": $i :");
}
$mondebut = ((($nbrpage - 1) * 10) + 1);
echo (": >> ");
?>

<?

 

mysql_close();
?>
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
est ce que c'est normal que dans tes liens tu n'a pas la variable $_GET['designation_categorie']
et dans ton dernier lien tu ferme 2 fois la balise

Personne ne peut se permettre de juger l'autre....
Messages postés
20
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
14 octobre 2009

oh, oui c vraiment une grosse betise ke j'ai fais
merci,
alors dans le lien je met

c ça?
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
oui a mon avis tu n'auras plus d'erreurs a prpos des variables et si il y a d'autres erreur n'hesite pas...


Personne ne peut se permettre de juger l'autre....
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
oui normalement tu n'auras plus d'erreur sur tes variables n'hesite pas si tu a d'autres erreurs


Personne ne peut se permettre de juger l'autre....
Messages postés
20
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
14 octobre 2009

j'ai essayé mais ça ne marche pas !!
au 1er chargement de la page ça m'affiche tout d'abord des variables indefinies,
si je  selectionne la catégorie, ça me donne les 6 1er enregistrements, là c bon.
mais si je clique sur le lien pour la page suivante, ça me donne le 1er résultat, et si je fais précédant alors là il ne reconnais pas les variables !!!
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
Pour creer tes liens pourquoi ne fais tu pas :
if ($debut==0){
echo ("<< :");
}
for ( $i = 0; $i <= $nbr; $i++ ) //$nbr au nombre d'article dans la categorie
{
if (($i*10)!=$debut){
echo (": ($i+1) :");
}else{
echo ($i+1);
}
}
if (($debut+10)<$nbr){
echo (": >> ");
}
je vien d'ecrire ce code vite fait moi c'est ce que j'ai fais pour une gallerie photo et n'afficher que 3 photos par page et ca fonctionne..
si tu as des erreurs ecris les moi stp
j'espere t'avoir aidé


Personne ne peut se permettre de juger l'autre....
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
pardon le premier $nbr correspond aux nombre de page que tu as besoin et le deuxieme $nbr correspond au nombre total d'article dans la categorie donc il faut changer le nom d'une des deux variables


Personne ne peut se permettre de juger l'autre....
Messages postés
20
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
14 octobre 2009

salut,
j'ai essayé alors ça me donne le meme resultat de la requete sur tous les pages !!
alors j'ai changé de code , mais là j'ai au premier chargement :
Notice: Undefined index: where in d:\program files\easyphp1-7\www\ugurteks1\site3\front_office\categories.php on line 129

8


Notice: Undefined variable: t in d:\program files\easyphp1-7\www\ugurteks1\site3\front_office\categories.php on line 175

1 |
2 | >>
voilà le code de toute la page :

 <form action="<?  $_SERVER['PHP_SELF'] ; ?>" method="get" >
   
       <?php
            $requete = mysql_query("SELECT id_categorie, designation_categorie FROM categorie  ;");
            ?>

            <select name="designation_categorie" id="designation_categorie" onChange="changeNum(this.value)">
             <option value="-1" selected>--Choisissez --</option>
            <?php
                while($recup2 = mysql_fetch_array($requete)) {
            ?>
               <option value="<?php echo $recup2['designation_categorie']; ?>" ><?php echo $recup2['designation_categorie']; ?>       
           
           
                </option>
            <?php
            }
            ?>
            </select>
     </form>
     </center>
  
  
  
  
  
  
  
  
  

</td>
   <td rowspan="2">&nbsp;</td>
   <td rowspan="2" colspan="2" valign="top">
  
 
 
  
   <?php
$designation=$_GET['designation_categorie'];
$where = $_GET['where'];
$pag=4;

$requete3 =" SELECT id_categorie FROM categorie where designation_categorie=
'$designation' " ;
   $res=mysql_query($requete3) or die ("erreur req1 ".mysql_error());
    while ($recup3=mysql_fetch_row($res))
    {
    $id_categorie=$recup3['0'];
   
   
    }
   
   
$select = "SELECT count(id_pdt) FROM produit where id_categorie='".$id_categorie."'  "; //selection de tous les pdts
$resultatsel=mysql_query($select) or die("erreur req3" .mysql_error());
 $nbrpdt=mysql_fetch_row($resultatsel);
     $nbr=$nbrpdt[0];
     echo $nbr ;

 $moy=$nbr/$pag;
 $sit=ceil($moy);   
   
   
$min=($where-1)*$pag;
$requete1 ="select p.id_pdt, c.id_categorie,  p.photo_pdt, p.reference_pdt,  p.designation_pdt  , c.designation_categorie  from produit p, categorie c
   where p.id_categorie=c.id_categorie
   and c.designation_categorie='$designation'
   and c.id_categorie='".$id_categorie."'
   LIMIT $min , $pag
  ;";
   $resultat=mysql_query($requete1) or die("erreur req2" .mysql_error());
   while ($recup=mysql_fetch_array($resultat))
   {
  
  
 
  
   $t[] = $recup;
   }
   ?>
  
  
        <?php
     $n = 3; // nb de colonne
     for($i = 0; $i <= (count($t) - 1); $i ++) {
     if ($i % $n == 0) {
     ?>----

     <?php
     }
     ?>
        <?php
     echo '
';
     echo $t[$i]['designation_pdt'].'
';
     echo $t[$i]['reference_pdt'].'
';
     // etc.....
     ?>,
     <?php
     if ($i % $n == (2)) {
     ?>
     <?php
     }
     }

     ?>
    

<?php   

 if (!($where))
     {
     $where=1;
     }
   
     $start=1;
    if ($where>=2)
     {
   
     $pre=$where-1;
     echo"
     << |
     ";
   
     }
   
     while ($start<$where)
     {
   
     echo"";
     echo $start++;
     echo" | ";
   
     }
   
     echo"
     $where |
     ";
   
     $nwhere=$where+1;
   
     while ($nwhere<=$sit)
     {
   
     echo"";
     echo $nwhere++;
     echo" | ";
   
     }
   
     if ($where<$sit)
     {
   
     $sui=$where+1;
   
     echo">>";
   
     }
   
   

mysql_close();
?>
merci pour ton aide
 
 
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
est ce que lors du premier chargement ta variable where et definit dans ton url?


Personne ne peut se permettre de juger l'autre....
Messages postés
20
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
14 octobre 2009

salut,
au premier chargement j'ai
if (!($where))
     {
     $where=1;
     }
et en haut j'ai $where=$_GET['where']
est ce que ce n'est pas suffisant?
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
en fait je croi que ton if(!$where) et trop tard dans ta page car tu utilise la variable $where au dessus donc si elle n'est pas dans l'url ton $_get['where'] ne recupere rien donc ta requete ou tu l'utilise ne peux pas se faire


Personne ne peut se permettre de juger l'autre....
Messages postés
20
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
14 octobre 2009

je l'ai mis au dessus de $_GET mais c la mem chose
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
dsl de ne pas t'avoir aidé mais je continue a chercher le probleme par contre si les données dans ta BDD que tu utilisent ne sont pas confidentiel est ce que ca te derangerais de m'envoyer sur le forum ou en message privé quelques enregistrement des table que tu utilise pour que je fasse des tests en local chez moi si tu ne ve pas je comprends


Personne ne peut se permettre de juger l'autre....