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


Huggy
Réponse acceptée

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

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

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

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 ;)

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

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(); }

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']);

;)

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.

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.

salut,

Met sous condition ta première requête

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