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   -
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!
A voir également:

6 réponses

JB_A Messages postés 301 Date d'inscription   Statut Membre Dernière intervention   5
 
Je crois qu'il faut que tu utilise pour les deux :

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.

@ +
0
dassyka Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   1
 
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! :(
0
JB_A Messages postés 301 Date d'inscription   Statut Membre Dernière intervention   5
 
Si tu comptes le nombre de lignes dans ton fichier quel est le contenu de la ligne 33 ?
0
dassyka Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   1
 
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.... :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JB_A Messages postés 301 Date d'inscription   Statut Membre Dernière intervention   5
 
Deux remarques :
-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>"; 
  }   


0
dassyka Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci!!!
0