Besoin d'aide pour fonction GetList

guillaumepinho Messages postés 1 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 17 novembre 2010 - 17 nov. 2010 à 16:08
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 18 nov. 2010 à 19:45
J'utilise la fonction pour générer un dropdown(liste)dans un formulaire à partir d'une table. J'ai aucune faute mais ma liste reste toujours vide. Qq'un peut-il m'aider ?
Merci à l'avance.

VOICI MON CODE ET MES NOMS DE CHAMPS

Table : Operateur
Champs: idOperateur, operateurNom
___________________________________

// Fonction getList pour générer la liste à partir de la table Operateur

function getList()
{
$sql = "select operateurNom from Operateur";
$result = mysql_query($sql);
while ($operateurInfo = mysql_fetch_object($result))
{
echo "<option value='$operateurInfo->idOperateur'>$operateurNom->operateurNom</option>";
}
}



<!-- Appel de fonction pour liste dynamique -->
<select name="Operateur">
<?php getList(1);?>
</select>

7 réponses

Le grand Jisay Messages postés 100 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 18 février 2011 2
17 nov. 2010 à 17:04
Salut !

Je pense que le problème vient de ta requête...

Tu fais $sql = "select operateurNom from Operateur";

Et ensuite tu demandes à afficher dans l'attribut value ton idOperateur alors que tu ne sélectionne que operateurNom. Ta requête devrait plutôt être la suivante :

$sql = "select operateurNom, idOperateur from Operateur";
// ou bien 
$sql = "select * from Operateur";


Bien à toi,

Le grand Jisay
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
17 nov. 2010 à 19:03
Bonsoir

function getList()
{
$sql = "select operateurNom from Operateur";
$result = mysql_query($sql);
while ($operateurInfo = mysql_fetch_object($result))
{
echo "<option value='".$operateurInfo->idOperateur."'>
".$operateurInfo->operateurNom."</option>";
}
}

a++
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 nov. 2010 à 19:19
Salut,

A condition d'utiliser la requête de Le grand Jisay hein, sinon ça ne fonctionnera pas.

j'ai aucune faute mais ma liste reste toujours vide

Ca serait bien étonnant.
L'affichage des erreurs est il correctement activé ?
Un coup d'oeil dans le code HTML peut également être utile car l'erreur peut être masquée par d'autres balises.

Cordialement,


Kohntark -
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 nov. 2010 à 01:05
Salut,

Je comprends pas pourquoi les développeurs qui postent ici ne sont pas fatigués de chercher des erreurs qu'ils pourraient trouver seuls en faisant un minimum d'effort :
- activer l'affichage des erreurs
- tester le résultat de leurs fonctions plutôt que d'assumer qu'elles retournent toujours le résultat attendu.

Le plus flagrant, ces jours-ci, c'est sur les requêtes SQL. Au lieu de tester que la requête a été correctement exécutée, de compter le nombre d'enregistrement, les gens viennent poster sur le forum... Pour obtenir comme réponse d'activer l'affichage d'erreurs, de tester les résultats des requêtes, etc... Ca me dépasse.

Rien que l'affichage des erreurs montrerait que la variable $operateurNom n'existe pas et que le développeur a écrit ça au lieu de $operateurInfo.
Même si on voit facilement où est l'erreur, les développeurs ont les outils (plutôt basiques quand même !!!) pour les trouver eux-mêmes. Parce que je veux bien admettre qu'il ne soit pas toujours facile de prendre du recul sur son code, mais là, quand même, se rendre compte qu'on a mélangé un nom de champ de la bdd avec un nom de variable, ça se diagnostique assez simplement, juste avec error_reporting(E_ALL | E_STRICT);

Bonne continuation

P.S. en réalité, je suis surpris, Kohntark, que tu n'aies pas vu l'erreur ;)

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0

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

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
18 nov. 2010 à 07:28
P.S. en réalité, je suis surpris, Kohntark, que tu n'aies pas vu l'erreur ;)


Que voulais tu que je dise de plus, les 2 erreurs majeures avaient déjà été signalées, mais dans 2 messages distincts.

@guillaumepinho :
Pour synthétisé ce qui a été dit :
1- tu fais appel à un objet qui n'existe pas : $operateurNom
=> réponse de Cod57

2- ta requête est incomplète :
elle te retourne un objet ($operateurInfo) avec une seule propriété qui est operateurNom; hors tu demandes ensuite la propriété idOperateur, ... qui n'existe pas
=> réponse de Le grand Jisay


Cordialement,

Kohntark -
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 nov. 2010 à 07:42
Ah mince, j'étais trop fatigué lol

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
18 nov. 2010 à 19:45
Ah mince, j'étais trop fatigué lol

Poster à 01:05:24 puis 07:42:51 ne laisse pas des masses de place au sommeil, et il me semble que c'est souvent le cas

Faut dire aussi que je ne suis pas toujours suffisamment clair.
Pour préciser un peu donc :
Un coup d'oeil dans le code HTML peut également être utile car l'erreur peut être masquée par d'autres balises.

Si tu (Guillaumepinho) as une erreur générée par PHP dans un value par exemple (mais il y en a bien d'autres) :
" />
Le navigateur ne fait qu'interpréter du code HTML, JS, CSS, (...). Dans le cas présent il n'affiche bien évidemment pas le contenu de value qui sera une erreur PHP du style "Undefined variable ..."
Pour voir l'erreur il faudra consulter le code source de la page HTML.


Cordialement,


Kohntark -
0
Rejoignez-nous