Page 1 sur 1

probleme avec array et mysql

Posté : 06 avr. 2012, 15:16
par piotrowski-s
Bonjour à tous, j'essaie d'enregistrer les données issue d'un array dans mysql mais en vain j'ai une quantité non négligeable de message d'erreur.
foreach (  (array) $_POST['contact'] as $contact => $contact )
	{
    $query = "INSERT INTO gestionnaire_client VALUES (code_client, civilite, nom, prenom, qualite, tel, fax, gsm, e_mail, login, pass_md5),";  
    $query .= "contact[code_client], $contact[$civilite], $contact[$nom], $contact[$prenom], $contact[$qualite], $contact[$tel], $contact[$fax], $contact[$gsm], $contact[$e_mail], $contact[$login], $contact[$pass_md5], ";
Je ne sais pas si c'est la bonne structure.

Par avance merci.

Re: probleme avec array et mysql

Posté : 06 avr. 2012, 16:08
par moogli
Salut

Et ils disent quoi les messages d'erreurs ? Parce qu'ils te donnent ta réponse.
La globalement tes variables ne sont pas interprétées (vu le merdier php ne peux savoir ce que tu veux).
Utilise la concaténation pour résoudre tes soucis.
http://www.lephpfacile.com/cours/5-conc ... ux-chaines


@+

Re: probleme avec array et mysql

Posté : 06 avr. 2012, 17:00
par piotrowski-s
il me disent undefined toutes les var...

Re: probleme avec array et mysql

Posté : 06 avr. 2012, 17:02
par piotrowski-s
j'ai essayé avec cela mais ça fonctionne toujours pas
  $query .= "".$contact[code_client].$contact[$civilite].

Re: probleme avec array et mysql

Posté : 06 avr. 2012, 18:13
par xTG
as $contact => $contact )
C'est pas malin ça... Commences par changer le nom d'une des variables car ce n'est pas du tout la même information.

Re: probleme avec array et mysql

Posté : 06 avr. 2012, 18:16
par sirakawa
Bonjour à tous, j'essaie d'enregistrer les données issue d'un array dans mysql mais en vain j'ai une quantité non négligeable de message d'erreur.
foreach (  (array) $_POST['contact'] as $contact => $contact )
	{
    $query = "INSERT INTO gestionnaire_client VALUES (code_client, civilite, nom, prenom, qualite, tel, fax, gsm, e_mail, login, pass_md5),";  
    $query .= "contact[code_client], $contact[$civilite], $contact[$nom], $contact[$prenom], $contact[$qualite], $contact[$tel], $contact[$fax], $contact[$gsm], $contact[$e_mail], $contact[$login], $contact[$pass_md5], ";
Je ne sais pas si c'est la bonne structure.

Par avance merci.
On suppose que tu connais les noms des colonnes de ta table gestionnaire_clients.

1) vérifier que, avant le foreach, $_POST['contact'] contient ce que l'on croit print_r($_POST['contact']);.
Si ce n'est pas le cas, inutile d'aller plus loin.
2) Si $_POST['contact'] est correct, on allègerait par:
$t_contact = $_POST['contact']; avant le foreach;
3) Le foreach est étrangement fichu:
foreach ($t_contact as $contact)
{
extract ($contact);
et on a une série de variables qu'on peut mettre dans le quary SANS concaténation
mais la syntaxe de INSERT telle que c'est écrit, est fausse. cf http://dev.mysql.com/doc/refman/5.0/fr/insert.html
}
}

Re: probleme avec array et mysql

Posté : 09 avr. 2012, 09:33
par piotrowski-s
merci pour votre aide, en suivant vos conseils j'ai donc fais cela
 
$t_contact = $_POST['contact'];
foreach ($t_contact as $contact)
	{
   extract ($contact);
   $sql9 = 'INSERT INTO  gestionnaire_client SET 
code_client					= "'.mysql_real_escape_string($_POST['code_client']).'", 
nom			 				= "'.mysql_real_escape_string($_POST['nom']).'", 
prenom						= "'.mysql_real_escape_string($_POST['prenom']).'", 
qualite						= "'.mysql_real_escape_string($_POST['qualite']).'" , 
tel							= "'.mysql_real_escape_string($_POST['tel']).'" , 
fax							= "'.mysql_real_escape_string($_POST['fax']).'" , 
gsm			 				= "'.mysql_real_escape_string($_POST['gsm']).'" , 
e_mail		  				= "'.mysql_real_escape_string($_POST['e_mail']).'" , 
login		  				= "'.mysql_real_escape_string($_POST['login']).'" , 
pass_md5	  				= "'.mysql_real_escape_string($_POST['pass_md5']).'" 
' ;                  
   
}

mysql_query($sql9) or die(__LINE__.mysql_error().$sql9);
mais ça ne fonctionne toujours pas.

Re: probleme avec array et mysql

Posté : 09 avr. 2012, 11:14
par piotrowski-s
Up

Re: probleme avec array et mysql

Posté : 09 avr. 2012, 14:36
par piotrowski-s
ce que j('aurais besoin c'est de verifier le champs nommé "qualite". mais comme c'est un array en fait j'ai contact[1][qualite], contact[2][qualite], contact[3][qualite] et du coup je sais pas comment le verifier car la variable $_POST['qualite'][1] n'existe pas il me dit.

Re: probleme avec array et mysql

Posté : 09 avr. 2012, 15:26
par piotrowski-s
j'ai rajouté cela mais il insére des lignes vides.
if (array_key_exists(1, $array)  OR array_key_exists(2, $array) OR array_key_exists(3, $array) OR array_key_exists(4, $array) OR array_key_exists(5, $array))  {
foreach ($t_contact as $contact)
	{
		var_dump($contact);
voici les erreurs

Code : Tout sélectionner

( ! ) Notice: Undefined variable: array in C:\wamp\www\NEOGETCASH\ADMIN\sauve-client.php on line 78 Call Stack # Time Memory Function Location 1 0.0188 909368 {main}( ) ..\sauve-client.php:0 ( ! ) Warning: array_key_exists() expects parameter 2 to be array, null given in C:\wamp\www\NEOGETCASH\ADMIN\sauve-client.php on line 78 Call Stack # Time Memory Function Location 1 0.0188 909368 {main}( ) ..\sauve-client.php:0 2 0.8591 913760 array_key_exists ( ) ..\sauve-client.php:78

Re: probleme avec array et mysql

Posté : 09 avr. 2012, 16:23
par piotrowski-s
j'ai essayé comme cela, sans succès...
$t_contact = $_POST['contact'];
if (array_key_exists('qualite', $t_contact)) {
foreach ($t_contact as $contact)
	{
		var_dump($contact);