Update SQL + PHP

Résolu/Fermé
Coutcout86 Messages postés 195 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016 - 12 sept. 2013 à 10:05
gign44 Messages postés 124 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 22 octobre 2013 - 12 sept. 2013 à 12:05
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
12 sept. 2013 à 10:11
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
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
12 sept. 2013 à 10:40
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 lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016
12 sept. 2013 à 10:48
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
12 sept. 2013 à 10:51
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 lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016
12 sept. 2013 à 10:58
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
12 sept. 2013 à 11:02
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 lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016
12 sept. 2013 à 11:09
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
12 sept. 2013 à 11:11
bah essaie avec un in_array dans ton if, comme je viens de le dire.

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