Problème liste déroulante en php/mysql
6 messages
• Page 1 sur 1
-

Dax701 - Nouveau WRInaute

- Messages: 49
- Inscription: 11 Juin 2007
Problème liste déroulante en php/mysql
Bonjour à tous,
J'ai besoin d'aide pour un problème qui me fait tourner en rond depuis des heures...
J'aimerai créer dans un formulaire, une liste déroulante qui listerait des catégories et leurs sous-catégories respectives de manière "aérée" pour que ce soit bien lisible pour l'utilisateur, et voici le code que j'ai mis en place :
Si dans ma table "categories" j'ai par exemple 3 catégories configurées comme ci-dessous, le code fonctionne bien et ma liste déroulante n'a pas de problème :
catId....catParentId....catName
1................0................Test
2................1................Test2
3................2................Test3
Par contre dès que je rajoute une autre catégorie principale (donc avec catParentId = 0) comme ci-dessous, le code zappe la première catégorie principale (Test) et s'occupe uniquement de la dernière catégorie principale qui a été créée (Test4) :
catId....catParentId....catName
1................0................Test
2................1................Test2
3................2................Test3
4................0................Test4
5................4................Test5
Est-ce que vous pourriez me dire ce qui ne va pas et/ou d'où peut venir le problème ? Merci d'avance.
J'ai besoin d'aide pour un problème qui me fait tourner en rond depuis des heures...
J'aimerai créer dans un formulaire, une liste déroulante qui listerait des catégories et leurs sous-catégories respectives de manière "aérée" pour que ce soit bien lisible pour l'utilisateur, et voici le code que j'ai mis en place :
- Code: Tout sélectionner
<?php
function untree($parent, $level)
{
$parentsql = mysql_query("SELECT * FROM `". PREFIX ."categories` WHERE `catParentId` = $parent ORDER BY `catName`");
$return = "";
if (!mysql_num_rows($parentsql))
{
return;
}
else
{
while($branch = mysql_fetch_assoc($parentsql))
{
$echo_this = "<option value='";
$echo_this.= $branch["catId"];
$echo_this.= "'>";
for ($x=1; $x<=$level; $x++)
$echo_this.= " ";
$echo_this.= $branch["catName"];
$echo_this.="</option>";
$return.=$echo_this;
$rename_level = $level;
$return.= untree($branch["catId"], ++$rename_level);
}
}
return $return;
}
function getCategories()
{
$catList = mysql_query("SELECT * FROM `". PREFIX ."categories` WHERE `catParentId` = 0 ORDER BY `catName`");
while ($row = mysql_fetch_array($catList))
{
$string = "<option value='";
$string.= $row["catId"];
$string.= "'>";
$string.= $row["catName"];
$string.= "</option>";
$string.= untree($row["catId"], 1);
}
return $string;
}
$catList = getCategories();
?>
<select name='catParent'><option value='0'>None</option><?php echo $catList ?></select>
Si dans ma table "categories" j'ai par exemple 3 catégories configurées comme ci-dessous, le code fonctionne bien et ma liste déroulante n'a pas de problème :
catId....catParentId....catName
1................0................Test
2................1................Test2
3................2................Test3
Par contre dès que je rajoute une autre catégorie principale (donc avec catParentId = 0) comme ci-dessous, le code zappe la première catégorie principale (Test) et s'occupe uniquement de la dernière catégorie principale qui a été créée (Test4) :
catId....catParentId....catName
1................0................Test
2................1................Test2
3................2................Test3
4................0................Test4
5................4................Test5
Est-ce que vous pourriez me dire ce qui ne va pas et/ou d'où peut venir le problème ? Merci d'avance.
-

seebz - WRInaute impliqué

- Messages: 808
- Inscription: 15 Avr 2007
Re: Problème liste déroulante en php/mysql
- Code: Tout sélectionner
while ($row = mysql_fetch_array($catList))
{
$string = "<option value='";
Tu reset ta variable "$string" à l'intérieur de la boucle, normal que ca va pas
$string = "<option value='";
-

Dax701 - Nouveau WRInaute

- Messages: 49
- Inscription: 11 Juin 2007
Re: Problème liste déroulante en php/mysql
Je te remercie beaucoup... tu peux pas imaginer combien d'heures j'ai passé à cause de ce foutu point manquant...
Maintenant j'ai juste une erreur notice, alors si tu pouvais me dire comment la régler je t'en serais reconnaissant, sinon c'est pas grave car par la suite je ne vais pas faire afficher ce genre d'erreurs. Encore une fois merci.
Notice: Undefined variable: string in....... on line 70 (c'est la ligne en question)
Maintenant j'ai juste une erreur notice, alors si tu pouvais me dire comment la régler je t'en serais reconnaissant, sinon c'est pas grave car par la suite je ne vais pas faire afficher ce genre d'erreurs. Encore une fois merci.
Notice: Undefined variable: string in....... on line 70 (c'est la ligne en question)
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: Problème liste déroulante en php/mysql
Vu que tu concatenes string ($string .= ....) il faut définir $string avant la boucle while:
- Code: Tout sélectionner
$string = '';
-

seebz - WRInaute impliqué

- Messages: 808
- Inscription: 15 Avr 2007
Re: Problème liste déroulante en php/mysql
Dax701 a écrit:Je te remercie beaucoup... tu peux pas imaginer combien d'heures j'ai passé à cause de ce foutu point manquant...
Si, j'imagine bien, j'ai déja eu le coup où j'avais mis "return" dans la boucle
6 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Liste déroulante
- Liste déroulante et diaporama.
- Liste déroulante et référencement
- Impact liste déroulante
- liste déroulante stylée
- liste déroulante en CSS.
- Liste déroulante indexable / Crawlable
- Liste déroulante de formulaire et référencement
- Référancement d'une liste déroulante
- Referencement liste deroulante SELECT
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- Sortie officielle de GoogleStats v2.0 ! - 23-02-2003
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Le WRInaute du moment - 24-10-2006
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
