J'ai un formulaire que les utilisateurs remplissent, et sur le formulaire il y a plusieurs champs identiques, comme "nom du projet", "date du projet", "catégorie", etc. En fonction du nombre de formulaires qu'un utilisateur soumet, mon objectif est de :
- boucle sur le nombre de formulaires
- créer des instructions d'insertion SQL individuelles
Cependant, PHP me lance un AVIS que je ne semble pas comprendre :
Avis :
Avis : Chaîne non initialisée, décalage : 1 ...dataPasser.php on line 90
PHP
$myQuery = array();
if ($varsCount != 0)
{
for ($i=0; $i <= $varsCount; $i++)
{
$var = "insert into projectData values ('" . $catagory[$i] . "', '" . $task[$i] . "', '" . $fullText[$i] . "', '" . $dueDate[$i] . "', null, '" . $empId[$i] ."')";
array_push($myQuery, $var);
}
}
Il existe des références au problème que je rencontre, mais elles ne sont pas exactes et j'ai du mal à déduire d'où vient le problème. J'apprécierais grandement toute aide pour comprendre ce qui fait que le tableau ne s'initialise pas correctement.
0 votes
Vous laissez beaucoup de choses de côté dans l'exemple, mais quel est le résultat de var_dump($myQuery) ?
0 votes
Où se trouve la ligne 90, et quel est l'avis complet ?
1 votes
Je voulais juste ajouter que vous n'avez pas du tout besoin d'utiliser array_push ici. Faites simplement ceci. $myQuery[] = $var ;
0 votes
Cette question est fermée mais je peux peut-être aider ceux qui, comme moi, obtiennent de temps en temps cette erreur parce qu'ils ont oublié d'inclure des accolades lorsqu'ils invoquent dynamiquement une propriété de classe qui est un tableau (ou qui implémente ArrayAccess) tout en accédant à l'un de ses éléments. Par exemple
$this->$arrayMember[$index]
évaluera$arrayMember[$index]
d'abord ; ainsi, la partie du nom du membre dynamique est explicitement désignée comme ceci :$this->{$arrayMember}[$index]
.