Pas d'affichage de produits en fonction de la catégorie...

Résolu/Fermé
warbeast1000 Messages postés 56 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 30 juin 2015 - Modifié par warbeast1000 le 20/06/2015 à 10:44
warbeast1000 Messages postés 56 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 30 juin 2015 - 20 juin 2015 à 17:01
Salutation communauté.

Je reviens avec un nouveau problème ^^.
Alors voila, je voudrai réaliser un affichage de produit uniquement par catégorie selectionnée (pas d'Ajax comme sur mon précédent topic, pas besoin dans ce cas).
L'idée générale : j'ai un lien de type hypertext (<a></a>) qui est dans une boucle while est sensé, selon l'Id de ma catégorie, chargé uniquement les produits correspondants.
Seulement, il n'affiche rien du tout, même pas une erreur à l'écran. Alors je ne comprend pas du tout.
La boucle de lien :
try{
 include('inc/cnx.inc.php');
          
 $reqwleft = $connexion->prepare("SELECT * FROM categories");
 $reqwleft->execute();
 while($wrapcat = $reqwleft->fetch()){
       echo "<li><a href='prods.php?idD=".$wrapcat['idD']."' value=".$wrapcat['idD']."><span>".$wrapcat['categD']."</span></a></li>";
 }
}
catch (PDOException $e){
     die("Source : ".$DSN." Erreur : ".$e->getMessage());
}


et maintenant le code qui est sensé ce chargé après le clique sur le lien :

try{
     
     include('inc/cnx.inc.php');
 
     echo "<br /><hr /><br /><br />";
     echo "<table class='tabcart'>";
              
             $categg = $_GET['idD'];
      if(!isset($_SESSION['loginC']) || !isset($_SESSION['loginA'])){
            echo "<tr>
    <th>Photo</th>
    <th>Marque/Modeles</th>
    <th>Description</th>
    <th>Prix</th>
    <th>Ajouter</th>
            </tr>";
      }
      else{
      echo "<tr>
           <th>Photo</th>
                                <th>Marque/Modeles</th>
                                <th>Description</th>
                  <th>Prix</th>
                            </tr>";
      }  
                   if(!isset($categg)){           
   $reqshowcat = $connexion->prepare("SELECT * FROM produits WHERE idD =".$categg."'");
   $reqshowcat->execute();
    while($show = $reqshowcat->fetch()){
           if(isset($_SESSION['loginC'])){
           echo "<tr>";
                 echo "<td><span value=".$show['refP']."><img width='140' height='140' src='images/prod/".$show['refP'].".jpg' /></span></td>";
                 echo "<td><h5 id='marqmod' value=".$show['refP'].">".$show['marqueP']."__".$show['modeleP']."</h5></td>";
                 echo "<td><h5 value=".$product['refP'].">".$product['descriptionP']."</h5></td>";
                 echo "<td><h5 id='prixx' value=".$product['refP'].">".$product['prixP']."€</h5></td>";
                 echo "<td><a href='inc/cart.inc.php'><img src='css/images/cart.png'/></a></td>";
          echo "<tr>";
          }
          else{
          echo "<tr>
                        <td><span value=".$product['refP']."><img width=140' height='140' src='images/prod/".$product['refP'].".jpg' /></span></td>
                        <td><h5value=".$product['refP'].">".$product['marqueP']."__".$product['modeleP']."</h5></td>
                        <td><h5 value=".$product['refP'].">".$product['descriptionP']."</h5></td>
                        <td><h5 id='prixx'value=".$product['refP'].">".$product['prixP']."€</h5></td>
            </tr>";
          }
    }
    }
     echo "</table>";
}
catch (PDOException $e){
      die("Source : ".$DSN." Erreur : ".$e->getMessage());
}

echo est plus rapide que print.

4 réponses

Utilisateur anonyme
20 juin 2015 à 12:40
Bonjour

Dans la page appelée, as-tu affiché $categg pour vérifier que tu reçois bien la bonne catégorie ?

Ton test
if(!isset($categg))
fait que tu n'exécutes PAS ta requête si la catégorie est définie. Ce ne serait pas plutôt le contraire qu'il faudrait faire ?

Que fait ce
"'"
à la fin de ta requête ?
0
warbeast1000 Messages postés 56 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 30 juin 2015
20 juin 2015 à 14:11
Bon j'ai commencé par modifier sa :


if(isset($categg)){								   
	$reqshowcat = $connexion->prepare("SELECT * FROM produits WHERE idD =".$categg);


Mais en faite, la page ou j'utilise cette requête est celle doit être rempli par mes produits (donc mon affichage).
Les 2 scripts plus haut ont pour fonction:
1er : lien vers une catégories de produits
2nd : page d'affichage.

Sa ne marche toujours pas :/
0
As-tu affiché $categg comme je te l'ai demandé ?

Autre précision : quand tu écris il n'affiche rien du tout, de quoi parles-tu exactement ? De ton premier script, qui n'affiche même pas les liens, ou du second, qui te donne une page blanche quand tu as cliqué sur un lien ? D'ailleurs est-ce une page complètement blanche ou seulement avec les titres de ton tableau ?
0
warbeast1000 Messages postés 56 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 30 juin 2015
Modifié par warbeast1000 le 20/06/2015 à 15:56
Je sais que je reçois bien la bonne catégorie, il me l'affiche dans l'URL
En gros voila les liens vers les catégories sont ici :

http://img11.hostingpics.net/pics/249151971.png

et sa fonctionne
le problème est la :

http://img11.hostingpics.net/pics/607688802.png

On voit bien qu'il arrive à récupérer la bonne catégorie (dans l'URL) mais il n'affiche rien dans le tableau :(

PS: il n'y a que les <th> qui apparaissent comme vous pouvez le voir
0
Utilisateur anonyme
20 juin 2015 à 16:30
Je sais que je reçois bien la bonne catégorie, il me l'affiche dans l'URL
Il y a quand même quelque chose de très bizarre : les liens que tu crées dans ton premier script sont de la forme
prods.php?idD=...
alors que dans ton image on voit
prods.php?categD=...
. Peux-tu expliquer la différence, si ce n'est que le code que tu as montré pour tes liens n'est pas le bon ?
Le
$categg = $_GET['idD'];
ne doit pas donner grand chose puisqu'il n'y a pas de idD dans l'url.

Autre question : tu as
value=".$wrapcat['idD']
dans tes liens. À ma connaissance, la balise <a> n'a pas d'attribut value. À quoi cette "value" sert-elle ?
0
warbeast1000 Messages postés 56 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 30 juin 2015
20 juin 2015 à 16:36
Pour l'affichage de la catégorie j'ai essayer les deux categD et idD, en adaptant proprement le code a chaque fois.
preuve : http://localhost/i48/prods.php?idD=11

les codes sont les bon. Je pensais que mettre un value lui attribuerai l'id de la catégorie. Après l'avoir retiré, aucun évolution :(

Je ne comprend vraiment pas pourquoi sa ce n'affiche pas
0
Utilisateur anonyme
20 juin 2015 à 16:52
Je pensais que mettre un value lui attribuerai l'id de la catégorie
On ne programme pas en écrivant des trucs au hasard pour voir ce que ça donne. Le rôle de l'attribut value est parfaitement défini, l'essayer hors contexte est une pure perte de temps.
De même que nous donner des images qui ne correspondent pas au code que tu montres nous envoie sur des fausses pistes.
Je dois partir maintenant, mais si tu n'as pas pu avancer je serai de retour demain matin.
En attendant, tu devrais mettre des 'echo' de tes variables pour être sûr qu'elles valent bien ce que tu crois. Et des echo 'coucou1', echo 'coucou2', etc... pour vérifier si le code passe bien par où tu l'imagines - ou pas.
0
warbeast1000 Messages postés 56 Date d'inscription mardi 9 juin 2015 Statut Membre Dernière intervention 30 juin 2015
20 juin 2015 à 17:01
J'ai suivi vos instructions, mais absolument rien ne se produit a la sortie de ma boucle.
J'ai testé mes variables déjà, toutes.
Rien ne marche, cela fais des heures que je suis dessus, il ne me reste plus qu'un semaine pour rendre mon projet et il me reste beaucoup a faire.
Bref, je me débrouillerai tant pis, merci d'avoir essayé.

RESOLUS
0