Menu relié à ma bdd
Résolu
dassyka
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
dassyka Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
dassyka Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais affiché un menu avec les catégories et sous-catégories de ma base de données.
Mes 2 tables ressemble à:
table categorie
champs id_cat, cat_name et d'autes...
table sous_categorie
champs id_sous_cat, sous_cat_name et j'ai une relation avec id_cat
Voici mon code:
<?php
$db = new mysqli('xxxx',xxx','','xxx');
$query_1 = "select * from categorie order by cat_name asc";
$a = $db -> query($query_1)
or die ("erreur1");
echo "<ul>";
while($row = $a ->fetch_Array())
{
echo "<li>" . $row['cat_name'] . "<br>";
echo "</li>";
echo "<ul>";
$query_2 = "SELECT * FROM 'sous_categorie' WHERE '.cat_id' ="'.$a.';
$a2 = $db -> query($query_2)
or die ("erreur2");
while ($row = $a2 ->fetch_Array)
{
echo "<li>" . $row['sous_cat_name'] ."<br>";
echo "</li>";
echo "</ul>";
}
}
echo "</ul>";
?>
Pour le moment, voici ce que me donne le résultat:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Program Files\wamp\www\index.php on line 33
Je ne sais plus quoi faire, ça fait plusieurs jours que j'essaie de voir mon problème et comme je suis assez nouvelle avec php et mysql, je ne vois pas bien quel est le problème ni la solution...
Est-ce que quelqu'un pourrait voir la solution et m'aider SVP!!!
Merci!
J'aimerais affiché un menu avec les catégories et sous-catégories de ma base de données.
Mes 2 tables ressemble à:
table categorie
champs id_cat, cat_name et d'autes...
table sous_categorie
champs id_sous_cat, sous_cat_name et j'ai une relation avec id_cat
Voici mon code:
<?php
$db = new mysqli('xxxx',xxx','','xxx');
$query_1 = "select * from categorie order by cat_name asc";
$a = $db -> query($query_1)
or die ("erreur1");
echo "<ul>";
while($row = $a ->fetch_Array())
{
echo "<li>" . $row['cat_name'] . "<br>";
echo "</li>";
echo "<ul>";
$query_2 = "SELECT * FROM 'sous_categorie' WHERE '.cat_id' ="'.$a.';
$a2 = $db -> query($query_2)
or die ("erreur2");
while ($row = $a2 ->fetch_Array)
{
echo "<li>" . $row['sous_cat_name'] ."<br>";
echo "</li>";
echo "</ul>";
}
}
echo "</ul>";
?>
Pour le moment, voici ce que me donne le résultat:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Program Files\wamp\www\index.php on line 33
Je ne sais plus quoi faire, ça fait plusieurs jours que j'essaie de voir mon problème et comme je suis assez nouvelle avec php et mysql, je ne vois pas bien quel est le problème ni la solution...
Est-ce que quelqu'un pourrait voir la solution et m'aider SVP!!!
Merci!
A voir également:
- Menu relié à ma bdd
- Menu déroulant excel - Guide
- Canon quick menu - Télécharger - Utilitaires
- Windows 11 menu contextuel classique - Guide
- Windows 11 menu démarrer classique - Guide
- Réinitialiser menu démarrer windows 10 - Guide
6 réponses
Je crois qu'il faut que tu utilise pour les deux :
puisque le comptage des champs commence à 0 et qu'il s'agit dans les 2 cas de ton deuxième champ.
@ +
echo "<li>" . $row[1] . "<br>"; echo "</li>";
puisque le comptage des champs commence à 0 et qu'il s'agit dans les 2 cas de ton deuxième champ.
@ +
Hé non, j'ai toujours le même résultat!
Il doit vraiment y avoir autre chose que je ne fais pas correct mais je ne sais pas quoi! :(
Il doit vraiment y avoir autre chose que je ne fais pas correct mais je ne sais pas quoi! :(
C'est ça la ligne 33:
$query_2 = "SELECT * FROM 'sous_categorie' WHERE 'id_cat' ="'.$id_cat.';
Ce devrais être le champ de ma table sous_categorie qui est égale (avec la relation) au champ de la table categorie non?
Je me demandais également si je n'avais pas mal fait la jointure avec mes tables ou si je l'exprimais de façon incorrect! Je débute avec php et mysql alors je ne sais pas encore tout ni ne comprends exactement tout... Je suis un peu découragée!!:(
Tout ce que j'aimerais avoir est une liste comme ceci:
Dishwasher (cat_name de ma table categorie)
-undercounter machine (sous_cat_name de ma table sous_categorie)
-modular machine(sous_cat_name de ma table sous_categorie)
Crepe machine(cat_name de ma table categorie)
-double machine(sous_cat_name de ma table sous_categorie)
-single machine(sous_cat_name de ma table sous_categorie)
Est-ce qu'il y a une solution?
Ça fait plusieurs choses que j'essaie de différentes personnes et ça ne fonctionne toujours pas.... :(
$query_2 = "SELECT * FROM 'sous_categorie' WHERE 'id_cat' ="'.$id_cat.';
Ce devrais être le champ de ma table sous_categorie qui est égale (avec la relation) au champ de la table categorie non?
Je me demandais également si je n'avais pas mal fait la jointure avec mes tables ou si je l'exprimais de façon incorrect! Je débute avec php et mysql alors je ne sais pas encore tout ni ne comprends exactement tout... Je suis un peu découragée!!:(
Tout ce que j'aimerais avoir est une liste comme ceci:
Dishwasher (cat_name de ma table categorie)
-undercounter machine (sous_cat_name de ma table sous_categorie)
-modular machine(sous_cat_name de ma table sous_categorie)
Crepe machine(cat_name de ma table categorie)
-double machine(sous_cat_name de ma table sous_categorie)
-single machine(sous_cat_name de ma table sous_categorie)
Est-ce qu'il y a une solution?
Ça fait plusieurs choses que j'essaie de différentes personnes et ça ne fonctionne toujours pas.... :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Deux remarques :
-ton SQL n'est pas bien fermé.
Enfin je pense que pour faire ce que tu veux, il vaut mieux faire un seul SQL
Pour le reste :
-ton SQL n'est pas bien fermé.
$query_2 = "SELECT * FROM 'sous_categorie' WHERE 'id_cat' ="'.$id_cat.'; <code> De même, je crois que qu'il n'y a pas de . à mettre <code> $query_2 = "SELECT * FROM 'sous_categorie' WHERE 'id_cat' ='$id_cat'";
Enfin je pense que pour faire ce que tu veux, il vaut mieux faire un seul SQL
$query_1="select cat_name, sous_cat_name from categorie, sous_categorie WHERE id_sous_cat=id_cat GROUP BY cat_name ORDER BY cat_name asc";
Pour le reste :
while($row = $a ->fetch_Array()) $label = ""; if ($row[0]!=$label) { echo "<ul>"; echo "<li>" . $row[0] ."</li>"; echo "<ul>"; $label = $row[0]; } echo "<li>" . $row[1] ."</li>"; $row=$a->fetch_Array(); echo "</ul>"; echo "</ul>"; }