Update SQL + PHP

Résolu
Coutcout86 Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   -  
gign44 Messages postés 124 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un petit soucis avec une requête SQL et je n'arrive pas à trouver mon problème. Est-ce que quelqu'un pourrait m'aider ?

Voici mon code :


$array_pictures = array_combine($tab_mail_user,$tab_identifiant_users);
foreach($array_pictures as $mail => $insert_pictures)
{
if($mail = $tab_mail_user)
{
$update_bd = mysql_query('UPDATE users SET picture ='.$insert_pictures);
}
}
$result = mysql_num_rows($update_bd);

echo '<pre>';
print_r ($result);
echo '</pre>';

Mon $tab_mail_user est en fait un tableau d'une requête précédente qui récupére tous les adresses mail des utilisateurs. Et mon $mail est ma clé d'un autre tableau et qui correspond à l'adresse mail des users.

Pourriez-vous m'aider ?

Merci d'avance.
Romain COUTINEAU.
A voir également:

3 réponses

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Salut,

si ta variable $insert_pictures contient des valeurs alphanumériques (autre que numérique), il faut l'entourer de quotes.

On couple souvent le mysql_query avec : OR die(mysql_error());
comme ça, si tu as une erreur SQL, tu en seras informé.
0
Coutcout86
 
Merci beaucoup mais je dois mal gérer le truc car ma requête fonctionne correctement mais le probléme c'est que dans mon champ ''picture'' de ma BDD il m'ajoute pour chaque enregistrement la derniére ligne de tableau $insert_picture alors que je veux qu'il m'ajoute la ligne correspondante au mail.

Je dois surement mal faire mon ''If'' pourriez vous m'éclairez ?

Merci d'avance.
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
je ne sais pas ce que tu es censé avoir dans tes variables, mais tu peux contrôler ce qu'il y a dedans avec un print_r();

si insert_picture est un tableau tu dois probablement oublié de faire quelque chose.
0
Coutcout86 Messages postés 195 Date d'inscription   Statut Membre Dernière intervention  
 
Dans ma variable $mail c'est la clé de mon tableau $array_pictures et ma variable $tab_mail_user est un tableau.

En gros voila un exemple :

$tab_mail_user :
Array([0]=>nom.prenom@adresse.fr,
[1]=>nom.prenom@adresse.fr);

Et $mail : [nom.prenom@adresse.fr] (clé d'un autre tableau)

Et ce que je veux faire c'est que pour chaque clé ($mail) si elle est égale à une valeur du tableau $tab_mail_user alors tu fais un UPDATE de l'enregistrement en question.
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
ok, déjà ton if est mauvais, pour comparer une valeur, il faut faire ==, si tu fais juste = tu fais une attribution.

Ensuite, si $tab_mail_user est un tableau, jamais $mail ne pourra être égal à $tab_mail_user
0
Coutcout86 Messages postés 195 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai réglé mon problème de if effectivement c'était une erreur de frappe.
Ensuite comment tu me conseillerais de faire ?

Merci d'avance.
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
tout dépend de ce que tu cherches à faire exactement, si tu cherches à vérifier la présence du mail dans le tableau, tu peux utiliser in_array() dans ton if
0
Coutcout86 Messages postés 195 Date d'inscription   Statut Membre Dernière intervention  
 
Enfaite voila ce que je souhaite faire :

Premier tableau : $tab_user_mail

Array([0] => nom.prenom@adresse.fr,
[1] => nom2.prenom2@adresse.fr)

Et mon deuxiéme tableau : $array_picture

Array([nom.prenom@adresse.fr] => /file/user/nom.prenom.png,
[nom2.prenom2@adresse.fr] => /file/user/nom2.prenom2.png )


Et je veux comparer les clés de mon deuxième tableau avec les valeurs de mon premier. Et si une clé correspond à une valeur je fais un UPDATE dans la base de l'enregistrement en question.
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
bah essaie avec un in_array dans ton if, comme je viens de le dire.

https://www.php.net/in_array
0