Catégories et sous catégories

Par Feelsonic, il y a 11 ans


Bonjour,

Je crée un système de catégorie et de sous catégorie et dans chaque catégorie il y'a donc une sous catégorie et un commerce.

Le soucis est que mon script ne marche pas.

Voilà la structure de mes bases et mon code:

<?php include 'includes/config.php'; ?> <?php $reponse = mysql_query ("SELECT * FROM categories"); // Requête SQL while ($donnees = mysql_fetch_array($reponse)) // On boucle pour afficher toutes les données et on met toutes données dans un tableau { ?> <?php echo $donnees['id'];?> | <?php echo $donnees['nom'];?> | <?php echo '<a href="index.php?categorie=' . $donnees['id'] . '">'; ?>Voir</a> <?php } ?> <?php if(isset($_GET['id'])){ $reponse = mysql_query ("SELECT * FROM souscategories WHERE categories_id=".$id); // Requête SQL while ($categorie = mysql_fetch_array($reponse)) // On boucle pour afficher toutes les données et on met toutes données dans un tableau { ?> <?php echo $categorie['id'];?> | <?php echo $categorie['nom'];?> | <?php } } ?> <?php mysql_close(); // On oubli pas de déconnecter la base de données ?>

Merci d'avance.

10 réponses

betaWeb, il y a 11 ans

Ca me semble correct, qu'as-tu comme erreur ?

Feelsonic, il y a 11 ans

Aucune mais lorsque je clique sur VOIR cela m'affiche la catégorie et non pas la sous catégorie.

betaWeb, il y a 11 ans

Es-tu sur de récupérer le bon ID lors de ta première requête ?
Tu devrais utiliser PDO soit dit en passant c'est plus propre ;)

Feelsonic, il y a 11 ans

Je suis débutant, j'essaie déjà de faire des scripts qui fonctionne, après je m'y attelerai :)

Huggy, il y a 11 ans

Lorsque tu cliques sur 'Voir', le paramètre dans l'url s'appelle categorie
donc si j'ai bien compris, en dessous tu devrais avoir

if(isset($_GET['categorie'])){ $reponse = mysql_query ("SELECT * FROM souscategories WHERE categories_id=".$_GET['categorie']); // Requête SQL
Lqncer, il y a 11 ans

Salut,
je suis d'accord avec Huggy d'une par ta variable $id n'est référencer nul par d'autre par si on suis la logique de ton code ta variable GET et categorie
au passage fait un contrôle sur ton id

exemple:

if(!is_numeric($_GET('categorie'])){ echo 'loupé'; die(); }
betaWeb, il y a 11 ans

Hahaha j'avais pas fait gaffe (j'ai la migraine ça pardonne je pense) mais effectivement ta variable $id n'est définie nulle part, donc soit tu fais:

$id = $_GET['id'];

soit

$reponse = mysql_query ("SELECT * FROM souscategories WHERE categories_id=" . $_GET['id']);

;)

kewai, il y a 11 ans

Pourquoi ne pas faire qu'une seule table categorie ?
Tu rajoutes ton champs categorie_parent.

dans tes pages =>

Ta variable $id_categorie = $_GET
Si $id_categorie n'est pas définie
Tu sélectionnes tous tes enregistrements ou categorie_parent = NULL ou 0 (ca c'est toi qui vois)
Sinon
Tu sélectionnes tous tes engistrements ou categorie_parent = id_categorie

Ca ne change pas réellement ton script... tu as juste une table en moins... Ce qui serait plus smart.

Feelsonic, il y a 11 ans

Très bien le script fonctionne, maitenant dernière chose, j'aimerai que lorsque l'on clique sur ce bouton voir ca vide la page et ç affiche que le nouveau resultat.

Lqncer, il y a 11 ans

salut,

Met sous condition ta première requête

if(!isset($_GET['categorie']))