Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/12/2011, 15h03   #1
Candidat au titre de Membre du Club
 
Inscription : août 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 37
Points : 12
Points : 12
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 :
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
tapi21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 15h21   #2
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour est-ce qu'il y a bien un cas dans ta base ou agence = 'aaaa' et topj='2'
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 17h11   #3
Candidat au titre de Membre du Club
 
Inscription : août 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 37
Points : 12
Points : 12
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
tapi21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 17h49   #4
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Pour moi, ça me paraît bon.

On peut voir un peu plus de code.

Sinon, y a t-il une erreur ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 08h33   #5
Candidat au titre de Membre du Club
 
Inscription : août 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 37
Points : 12
Points : 12
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 :
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
tapi21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 10h57   #6
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 194
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 194
Points : 751
Points : 751
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 :
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 :
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')
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 11h21   #7
Candidat au titre de Membre du Club
 
Inscription : août 2010
Messages : 37
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 37
Points : 12
Points : 12
En effet, ça me va trés bien.
Merci
tapi21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h48.


 
 
 
 
Partenaires

Hébergement Web