par
Invité » 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 :
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