Probleme en php

Résolu/Fermé
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 31 mai 2007 à 13:30
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 31 mai 2007 à 14:55
bonjour .
Voila je vous explique .
J'ai 3 tableaux qui recuperent des entiers .
Pour entrer ces valeurs dans ma base de données, je rentre toutes les valeurs d'un tableau dans une variable de type VARCHAR , séparées par une virgule .
Et je fais cela pour les 3 tableaux .
Voila le code :
while($num_reponses_justes[$n] != "")
{
//concatenation des numeros dans la variable liste_reponses_justes , séparés par une virgule
$liste_reponses_justes .= $num_reponses_justes[$n].",";
$n++;
}
while($num_reponses_fausses[$p] != "")
{
//concatenation des numeros dans la variable liste_reponses_justes , séparés par une virgule
$liste_reponses_fausses .= $num_reponses_fausses[$p].",";
$p++;
}
while($num_je_ne_sais_pas[$q] != "")
{
//concatenation des numeros dans la variable liste_reponses_justes , séparés par une virgule
$liste_je_ne_sais_pas .= $num_je_ne_sais_pas[$q].",";
$q++;
}


A la fin, j'execute une requete qui part m'envoyer ces 3 chaines de caracteres dans ma base de données .

Le résultat est le suivant :

- d'une part, mes valeurs vont bien s'ajouter dans ma base de données correctement .
- d'autre part, voila les messages d'erreur que j'obtiens sur ma page suivante :
Notice: Undefined variable: liste_reponses_justes in c:\program files\easyphp1-8\www\projet\reponse.php on line 96

Notice: Undefined offset: 8 in c:\program files\easyphp1-8\www\projet\reponse.php on line 93

Notice: Undefined variable: liste_reponses_fausses in c:\program files\easyphp1-8\www\projet\reponse.php on line 102

Notice: Undefined offset: 4 in c:\program files\easyphp1-8\www\projet\reponse.php on line 99

Notice: Undefined variable: liste_je_ne_sais_pas in c:\program files\easyphp1-8\www\projet\reponse.php on line 108

Notice: Undefined offset: 4 in c:\program files\easyphp1-8\www\projet\reponse.php on line 105


Déja il me parle de variables non déclarées ... je vois pas ou je devrais les declarer et pourquoi ...
Et puis ce indefid offset qui est un message d'erreur que je ne connais pas ...

Si quelqu'un pouvait m'aider ca serait super , parce que la je vois pas .
Donc mon soucis ce sont les messages d'erreur puisque l'ecriture des donnéees dans la BDD se fait correctement .

Help pliz !!! :)
A voir également:

5 réponses

Bonjour,

rien de grave, ce sont juste tes variables qui ne sont pas déclarées en amont dans le code.
0
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
31 mai 2007 à 13:43
comment dois je les declarer puisqu'il s'agit de variables type varchar ???
0
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
31 mai 2007 à 14:33
bon en php on declare les variables en meme temps qu'elles prennent leur valeur , donc je capte pas le délire .

Puis pour ces UNDEFINIED OFFSET, impossible d'avoir une reponse .

N'y a t'il vraiment personne qui pourrait m'aider ?
0
webtotoche Messages postés 69 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 3 novembre 2007 7
31 mai 2007 à 14:50
Salut !

bon en php on declare les variables en meme temps qu'elles prennent leur valeur , donc je capte pas le délire . 


Je vais finasser : les variables sont déclarées quand on leur affecte une valeur, pas lorsqu'on réalise une opération dessus... ;-)

ACNet t'a donné la bonne réponse.
_
0
ACNet Messages postés 64 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 24 novembre 2007 14
31 mai 2007 à 14:42
comme le dit lenono, tes variables ne sont pas déclarées.

Il est vrai que l'on peut faire de la déclaration implicite en PHP, c'est à dire, que tu peux te contenter d'affecter une valeur à une variable non existante pour qu'elle soit déclarée.

Donc :
$liste_reponses_justes = 'bonjour';

serait valide par exemple.

Le problème c'est que tu utilises l'opérateur d'affectation ".="
qui signifie

$liste_reponses_justes = $listes_reponses_justes + quelque chose.


Cette opération marche lorsque $listes_reponses_justes est déclaré (explicitement, ou que l'on lui a affecté une valeur) mais au premier passage dans la boucle, il est incapable d'affecter une valeur qui n'existe pas à une variable.

il te suffirait simplement avant la boucle de mettre :
$liste_reponses_justes="";

ce qui l'initialisera.




Ensuite, pour ce qui est des undefined offset, c'est plus ou moins le meme problème : ton tableau existe bel et bien mais tu cherches à lire un enregistrement qui existe pas . (exemple: tu as déclaré un tableau de 10 valeurs (implicitement ou explicitement) et tu cherches à lire la onzième.

0

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

Posez votre question
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
31 mai 2007 à 14:55
Yep .
Enfin des reponses precises a mes questions :) j'aime ca .
bon pour ce qui est du undefinied offset, j'ai trouvé une autre technique pour eviter ca. j'etais parti sur une logique pas tres logique en fait ^_^

pour ce qui est de l'opérateur d'affectation .= , ben je viens d'apprendre un truc, j'irai au lit moins *** ce soir . :)

Merci en tout cas et bonne fin de journée
0