Update SQL + PHP

Résolu
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.

3 réponses

  1. Contributeur
    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é.
    1. 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.
      1. Contributeur
        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.
    2. 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.
      1. Contributeur
        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
      2. 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.
      3. Contributeur
        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
      4. 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.