102 votes

Erreur fatale : opérateur [] non pris en charge pour les chaînes

J'obtiens des informations de la base de données, je les enregistre dans un tableau et je les renvoie dans un formulaire avec une structure en boucle et j'ai des problèmes lorsque j'essaie d'enregistrer les informations modifiées dans la base de données.

J'obtiens cette erreur :

Erreur fatale : opérateur [] non pris en charge pour les chaînes dans....

Code:

 $namesql1 = "SELECT name,date,text,date2 FROM table WHERE something= '$something'";
$nameresult1 = mysql_query($namesql1);
$countrows = mysql_num_rows($nameresult1);
while ($row = mysql_fetch_array($nameresult1, MYSQL_ASSOC)) {
    $name[] = $row['name'];
    $date[] = $row['date'];
    $text[] = $row['text'];
    $date2[] = $row['date2 '];
}

/** SOME CODE HERE **/

    
$wrotesql = "UPDATE service_report SET  name ='$name' , $date = '$date',$text = '$text[$nro]', ser_date = '$date2[$nro]' WHERE something = '$something')";

$wroteresult = mysql_query($wrotesql);

Quelqu'un pourrait-il s'il vous plaît me donner une indication de ce que je fais mal?

55voto

Jefffrey Points 31698

Vous avez probablement défini $name , $date , $text ou $date2 comme une chaîne, comme :

 $name = 'String';

Ensuite, si vous le traitez comme un tableau, cela donnera cette erreur fatale :

 $name[] = 'new value'; // fatal error

Pour résoudre votre problème, ajoutez simplement le code suivant au début de la boucle :

 $name = array();
$date = array();
$text = array();
$date2 = array();

Cela réinitialisera leur valeur au tableau et vous pourrez ensuite les utiliser comme tableaux.

7voto

Jad Ayash Points 41

c'était disponible en php 5.6 en php 7+, vous devez d'abord déclarer le tableau

 $users = array(); // not $users = ";
$users[] = "762";

1voto

Darwin Points 32

Résolu !

 $a['index'] = [];
$a['index'][] = 'another value';
$a['index'][] = 'another value';
$a['index'][] = 'another value';
$a['index'][] = 'another value';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X