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 :

update du même champ mais deux conditions [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 72
    Par défaut update du même champ mais deux conditions
    Bonjour,
    je souhaiterai "updater" un champ de ma base mais suivant deux conditions.
    J'ai fait une première version qui ne fonctionne pas (la deuxième intruction n'est pas traitée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $query5 = mysql_query("UPDATE LOW_PRIORITY feuil1 SET topj='0' WHERE agence = 'aaaa' and topj='1'");
    $query6 = mysql_query("UPDATE LOW_PRIORITY feuil1 SET topj='1' WHERE agence = 'aaaa' and topj='2'");
    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Bonjour est-ce qu'il y a bien un cas dans ta base ou agence = 'aaaa' et topj='2'

  3. #3
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 72
    Par défaut
    Merci de la réponse,
    Il y a bien ce cas dans la base, mais j'ai peur de chercher un problème où il n'y en a pas.
    Si vous m'assurez que cette syntaxe est correcte, je vais voir ailleurs dans mon code.
    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Pour moi, ça me paraît bon.

    On peut voir un peu plus de code.

    Sinon, y a t-il une erreur ?

  5. #5
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 72
    Par défaut
    Non pas d'erreur, mais il me semblait que les tops n'était pas mis à jour. Mais il semblerait que ce soit juste une temporisation dans la mise à jour de la base.
    Par contre je profite de l'intérêt que tu portes à mes message pour soummettre un autre problème (je ne suis peut-être pas dans le bon sujet ...)
    Je souhaite récupérer dans ma base des enregistrements qui portent un top à "2" et qui ont une date de mise à jour différente de la date du jour et si ce n'est pas le cas, il faut récupérer un enregistrement qui porte un top à "1".
    J'ai essayé avec plusieurs WHERE dans un SELECT mais ça récupère tout. Voilà un extrait du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result1 = mysql_query("select * from feuil1 AS f, structure AS s WHERE s.dga = '$indicatif' and (f.topj='2' and f.jour<>'$jour' or f.topj='1') order by f.agence") or die ('erreur');
    Merci

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Citation Envoyé par tapi21 Voir le message
    Bonjour,
    je souhaiterai "updater" un champ de ma base mais suivant deux conditions.
    J'ai fait une première version qui ne fonctionne pas (la deuxième intruction n'est pas traitée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $query5 = mysql_query("UPDATE LOW_PRIORITY feuil1 SET topj='0' WHERE agence = 'aaaa' and topj='1'");
    $query6 = mysql_query("UPDATE LOW_PRIORITY feuil1 SET topj='1' WHERE agence = 'aaaa' and topj='2'");
    Merci
    Plutôt que de faire des updates successifs et de risquer que les uns impactent les autres malgré vous, utilisez CASE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE LOW_PRIORITY feuil1
    SET topj= CASE topj WHEN '1' THEN '0' WHEN  '2' THEN '1' END
    WHERE agence = 'aaaa' and topj IN ('1', '2')

  7. #7
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 72
    Par défaut
    En effet, ça me va trés bien.
    Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/06/2012, 20h40
  2. [AC-2003] Sélectionner deux fois le même champ avec deux conditions différentes
    Par juju1988 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/10/2010, 09h23
  3. update d'un champ avec deux champs
    Par frazck dans le forum SQLite
    Réponses: 3
    Dernier message: 28/07/2009, 23h47
  4. Requête d'un même champ sur deux tables
    Par laipreu dans le forum Requêtes
    Réponses: 1
    Dernier message: 18/09/2008, 13h38
  5. [Modèle Relationnel] Tables avec même champs mais containtes d'intégrités différents
    Par West01 dans le forum Schéma
    Réponses: 1
    Dernier message: 19/07/2008, 12h06

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