Array to string conversion
Posté : 12 oct. 2006, 20:09
Bonjour à tous,
J'ai un super gros problème dans mon code et je ne trouve pas la solution. Je ne vais donc pas développer tous les tests que j'ai fait vu qu'ils ne mènent à rien mais vous exposer la situation telle qu'elle m'est posée :
J'ai ma page fournisseursmodif.php avec un formulaire et tout et tout et j'ai ce passage qui vérifie mes champs. Dans ce passage, j'en profite pour transformer un array en string :
Notice: Array to string conversion in d:\www\ctiweb\site6\alexma2\fonctions.php on line 180
Notice: Array to string conversion in d:\www\ctiweb\site6\alexma2\fonctions.php on line 184
(Je vous ai ajouté les numéros des lignes 180 et 184 sur le code).
$cat[] récupère des valeurs via des checkbox et je tente d'en faire une string avec le implode().
Quand je fais un gettype($cat) j'obtiens un "string" et avec un var_dump($cat) j'obtiens "string(nombre de caractères)chaîne".
Donc je ne pige pas.
Si quelqu'un peut m'aider ça serait cool.
Merci d'avance,
Bimini
J'ai un super gros problème dans mon code et je ne trouve pas la solution. Je ne vais donc pas développer tous les tests que j'ai fait vu qu'ils ne mènent à rien mais vous exposer la situation telle qu'elle m'est posée :
J'ai ma page fournisseursmodif.php avec un formulaire et tout et tout et j'ai ce passage qui vérifie mes champs. Dans ce passage, j'en profite pour transformer un array en string :
foreach($HTTP_POST_VARS as $cle => $valeur)
{
...
if ($cle == "cat")
{if ($valeur == "")
{$valeur = "sans";}
elseif (is_array($valeur))
{$valeur = implode(', ',$valeur);
}
}
...
}
rangement($HTTP_POST_VARS,"fournisseur","id_fournisseur",$id_fournisseur);
Ensuite j'ai mon fichier fonctions.php qui est appelé dans le premier fichier. Là, j'ai cette fonction qui me permet de tout updater dans la base de données.function rangement($donnees,$nomtable,$variable,$id)
{
$query = "update $nomtable set ";
$query2 = " where $variable="."'"."$id"."'";
$compteur = 0;
foreach ($donnees as $cle => $valeur)
{
$donnees[$cle] = trim($donnees[$cle]);//(180)//
$donnees[$cle] = strip_tags($donnees[$cle]);
$compteur++;
if($compteur==sizeof($donnees)) // si dernier champs
{$query = $query.$cle."='".addslashes($valeur)."'";//(184)//
}
else // si ce n'est pas le dernier champs
{$query = $query.$cle."='".addslashes($valeur)."', ";
}
}
$query=$query.$query2;
$result = mysql_query($query);
if (!$result)
{echo "Exécution de la requête <b>$query</b> impossible".mysql_errno()." : ".mysql_error()."<br>"; //pour la mise au point
}
}
Voilà pour les codes... Maintenant quand je lance l'application j'obtiens ça :Notice: Array to string conversion in d:\www\ctiweb\site6\alexma2\fonctions.php on line 180
Notice: Array to string conversion in d:\www\ctiweb\site6\alexma2\fonctions.php on line 184
(Je vous ai ajouté les numéros des lignes 180 et 184 sur le code).
$cat[] récupère des valeurs via des checkbox et je tente d'en faire une string avec le implode().
Quand je fais un gettype($cat) j'obtiens un "string" et avec un var_dump($cat) j'obtiens "string(nombre de caractères)chaîne".
Donc je ne pige pas.
Si quelqu'un peut m'aider ça serait cool.
Merci d'avance,
Bimini