IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Lecture d'un tableau et fonction "IN" [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 37
    Points : 20
    Points
    20
    Par défaut Lecture d'un tableau et fonction "IN"
    Bonsoir

    Je vous demande un petit coup de main concernant la lecture d'un tableau PHP dans une requete MySql... Bon pour plus de détail voyez ce qui suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    //la variable $tab est un tableau (array)
    $query = "UPDATE $gall_image SET date_validation = NOW WHERE id IN $tab;";
    $req = mysql_query($query);
    ...
    Bien entendu cela aurait été trop simple si cela marchait! Mais non!

    Mon but est de lire le contenu d'un tableau PHP les valeurs est si une de ces valeurs corresponds à un "id" de ma base, alors "date_validation" prend la valeur de la date et heure du jour...

    Une petite idée peut être...?

    Merci à vous en attendant.

    ZZM.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu dois faire une boucle de foreach, et compléter ta clause IN avec les contenus du tableau.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $query = 'UPDATE '.$gall_image.' SET date_validation = NOW WHERE id IN (';
    $i=0;
    foreach ($tab as $valeur) {
      $i++;
      if ($i!=1) {
        $query.=', ';
        }
      $query.=$valeur;
      }
    $query.=')';

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Effectivement... je viens de trouver également la solution que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...	
    for ($i=0; $i<count($result_supp); $i++){
     
    		$res_valid .= "'".$result_supp[$i]."'";
     
    		if ($i < count($result_supp)-1){$res_valid .= ",";}
    	}
     
    	$query = "UPDATE `$gall_image` SET `date_validation` = NOW() WHERE `id` IN ($res_valid);";
    ...
    Ce qui au final, revient au même! Mais je t'avouerai que je préfère ton foreach que mon for!

    Merci beaucoup de ton aide!

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Avec plaisir
    N'oublie pas le tag

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    En plus simple, et certainement plus rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    //la variable $tab est un tableau (array)
    $in = implode(',', $tab);
    $query = "UPDATE $gall_image SET date_validation = NOW WHERE id IN ($in)";
    $req = mysql_query($query);
    ...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 37
    Points : 20
    Points
    20
    Par défaut Hum hum...
    J'aime beaucoup ta solution qui me semble effectivement beaucoup plus simple... merci à toi!

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] pb lecture script php dans une fonction au démarrage
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2005, 15h07
  2. Réponses: 2
    Dernier message: 15/04/2004, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo