OVH Cloud OVH Cloud

Variable formulaire array

5 réponses
Avatar
Forums wanadoo
Bonjour,
Dans un formulaire affiché dynamiquement :

while($rang=mysql_fetch_array($resultat))
{
$nomeleve=$rang['nomeleve'];
$pnom=$rang['pnom'];
echo "<TR>"
."<TD>$nomeleve<TD>$pnom<TD><input type='text' name='notes[$nomeleve]'> \n";
}

Je veux insérer dans une table note les notes justement saisies lors de
l'affichage initial du formulaire.

while($rang=mysql_fetch_array($resultat))
{
$nomeleve=$rang['nomeleve'];
$note=$_POST['notes'][$nomeleve];
$numerodev=$_POST['numerodev'];
$sql="INSERT INTO note VALUES ('$nomeleve', '$numerodev','$nomprof',
'$note')";
$resultat=ExecRequete($sql, $connexion);
}

Le message d'erreur suivant apparait : mysql_fetch_array(): supplied
argument is not a valid MySQL result resource.
Un enregistrement apparait bien dans la table mais incomplet : pas de note !

Merci de votre aide.
Oman

5 réponses

Avatar
CrazyCat
Forums wanadoo wrote:
Bonjour,
Dans un formulaire affiché dynamiquement :

while($rang=mysql_fetch_array($resultat))
{
$nomeleve=$rang['nomeleve'];
$pnom=$rang['pnom'];
echo "<TR>"
."<TD>$nomeleve<TD>$pnom<TD><input type='text' name='notes[$nomeleve]'> n";
}

Je veux insérer dans une table note les notes justement saisies lors de
l'affichage initial du formulaire.

while($rang=mysql_fetch_array($resultat))
{
$nomeleve=$rang['nomeleve'];
$note=$_POST['notes'][$nomeleve];
$numerodev=$_POST['numerodev'];
$sql="INSERT INTO note VALUES ('$nomeleve', '$numerodev','$nomprof',
'$note')";
$resultat=ExecRequete($sql, $connexion);
}


J'ai du mal à suivre ton code:
une boucle basée sur le contenu de $resultat (à priori un retour de
requète SQL de type SELECT) transforme $resultat en un retour de INSERT.
Peut-être qu'en utilisant un autre nom de variable ça tournera mieux non?


--
Tchattez en liberté: http://www.c-p-f.net
Tout sur les eggdrops: http://www.c-p-f.org
ML @ http://groups-beta.google.com/group/eggdrops

Avatar
Forums wanadoo
L'insertion fonctionne pour le premier nomeleve, je récupére la note. Mais
erreur pour les autres
!
Le message d'erreur suivant demeure : mysql_fetch_array(): supplied
argument is not a valid MySQL result resource.

Merci de votre aide.
Oman
Avatar
Sebastian 'CrashandDie' Lauwers
Forums wanadoo wrote:

[...]


Erreur assé classique. J'ai moi même longtemps cherché pourquoi ça me
faisait cette erreur.

Voici ce que vous faites:

Vous avez un array qui s'appelle $resultat.
Avec le while($rang=mysql_fetch_array($resultat)), vous regardez pas à
pas dans ce tableau les valeurs, et effectuez des opérations dessus.

Mais dans ces opérations, vous assignez une nouvelle valeur à $resultat.
Ce qui fait que lorsque le while a fini la première boucle et veut
commencer la seconde, il regarde la 2nde valeur du tableau, mais le
tableau n'est plus là. Il a été remplacé par ce que retourne votre
ExecRequete($sql, $connexion). D'où l'erreur.

mysql_fetch_array(): supplied argument is not a valid MySQL result resource.

Cette erreur signifie simplement que ce que vous soumettez à
mysql_fetch_array n'est pas un résultat SQL utilisable.

C'est ce que CrazyCat vous a expliqué.

Merci de votre aide.


HTH,

Oman


S.

Avatar
Cleo
"Forums wanadoo" a écrit dans le message de news:
419b0f9e$0$18802$
L'insertion fonctionne pour le premier nomeleve, je récupére la note. Mais
erreur pour les autres
!
Le message d'erreur suivant demeure : mysql_fetch_array(): supplied
argument is not a valid MySQL result resource.

Merci de votre aide.
Oman


Peux-tu envoyer le code de ta fonction [ExecRequete], puis indiquer
également comment tu affectes [$resultat] et [$connexion] ?

--
Cléo

Avatar
Forums wanadoo
Merci de vos aides.
Le problème est résolu (jusqu'au prochain !)
Cordialement
Oman