Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1388 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mysql] aide pour une pitite requète

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[mysql] aide pour une pitite requète

n°173020
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:12:51  profilanswer
 

voilà, je voudrais faire un truc du style :
 
 

Code :
  1. UPDATE table SET brol=0 WHERE brol=1 ORDER BY ordre DESC LIMIT 5,3;


 
 
c'est pour changer brol en brol=0 pour les entrée de 5 à 8 où brol=1
 
 
j'en profite pour demander s'il y a pas moyen de faire ce qui suit, mais plus simplement parce que ca me parait un peu lourd pour ce que ca fait :
 

Code :
  1. $sql = "SELECT COUNT(*) FROM table WHERE top=1";
  2. $query = mysql_query($sql, $db);
  3. $my_result = $mysql_fetch_row($query);
  4. $taille = $myresult[0];


 
voili :)
 
 
je suis neuneu ! n'est-ce pas ?


Message édité par art_dupond le 08-07-2002 à 17:15:33

---------------
oui oui
mood
Publicité
Posté le 08-07-2002 à 17:12:51  profilanswer
 

n°173025
--greg--
Posté le 08-07-2002 à 17:15:52  profilanswer
 

tu as pas un champ "id" dans ta table???
parce que le limit, c'est un peu hasard.
(genre si tu fais un order by truc limit 3, ça te renvoie pas necessairement les 3 records ou truc est le plus petit...)

n°173026
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:16:26  profilanswer
 

hum, je vais essayer avec WHERE SELECT...
 
 
 
ps : je me réponds parce que bon... je me sens seul :na:


---------------
oui oui
n°173028
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:17:04  profilanswer
 

--greg-- a écrit a écrit :

tu as pas un champ "id" dans ta table???
parce que le limit, c'est un peu hasard.
(genre si tu fais un order by truc limit 3, ça te renvoie pas necessairement les 3 records ou truc est le plus petit...)




j'ai des numéros d'ordre : ordre


---------------
oui oui
n°173030
--greg--
Posté le 08-07-2002 à 17:18:39  profilanswer
 

art_dupond a écrit a écrit :

 
j'ai des numéros d'ordre : ordre




 
UPDATE table SET brol=0 WHERE brol=1 AND ordre>5 AND ordre<=8;
 

n°173033
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:20:35  profilanswer
 

bon, je vais mieux expliquer comme ca ce sera plus clair (sorry)
 
 
ordre = nombre de clicks => ne sont pas des nombres qui se suivent et je les connais pas à l'avance


---------------
oui oui
n°173035
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 08-07-2002 à 17:23:01  profilanswer
 

tu dois bien avoir un champ clé primaire dans ta base ???


---------------
J'ai un string dans l'array (Paris Hilton)
n°173044
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:29:33  profilanswer
 

euh oui, id
 
mais je crois pas en avoir besoin pour faire ce que je veux faire


---------------
oui oui
n°173049
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 08-07-2002 à 17:33:18  profilanswer
 

ben si, tu prends la requete que greg t'a filé plus haut, et tu remplaces ordre par id


---------------
J'ai un string dans l'array (Paris Hilton)
n°173061
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:43:06  profilanswer
 

euh... j'suis neuneu, mais je crois pas que c'est ce qu'il me faut.
 
bon je vais faire un dessin.
 
 

Code :
  1. id        nom       brol        ordre
  2. 7        pout        1           125
  3. 4        patate      1           112
  4. 10       proutte     0           100
  5. 1        otchouck    1           98
  6. ...


 
et je voudrais garder les 2 premières entrées avec brol=1 (donc les entrées avec brol=1 et dont ordre est le plus grand)
et les autres entrées ou brol=1, je veux les remettre à 0
 
donc je veux avoir en final :
 

Code :
  1. id        nom       brol        ordre
  2. 7        pout        1           125
  3. 4        patate      1           112
  4. 10       proutte     0           100
  5. 1        otchouck    0           98
  6. ...


 
donc je peux pas faire avec id


Message édité par art_dupond le 08-07-2002 à 17:45:18

---------------
oui oui
mood
Publicité
Posté le 08-07-2002 à 17:43:06  profilanswer
 

n°173066
--greg--
Posté le 08-07-2002 à 17:47:12  profilanswer
 

tu veux updater les deux qui ont l'ordre le plus petit alors?


Message édité par --greg-- le 08-07-2002 à 17:48:02
n°173067
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:49:15  profilanswer
 

je veux garder les deux dont l'ordre est le plus grand
et remettre tous les autres qui étaient à 1 => zéro


Message édité par art_dupond le 08-07-2002 à 17:49:54

---------------
oui oui
n°173071
--greg--
Posté le 08-07-2002 à 17:51:48  profilanswer
 

à part avec une requete imbriquée je vois pas :(

n°173072
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:52:58  profilanswer
 

ben propose toujours.
 
je sais pas comment faire, c'est pour ca que je demande :p  
 
j'suis neuneu moi :cry:


Message édité par art_dupond le 08-07-2002 à 17:53:31

---------------
oui oui
n°173073
--greg--
Posté le 08-07-2002 à 17:55:08  profilanswer
 

update set brol=0 where brol=1 and id not in (select id from table where brol=1 order by ordre desc limit 2)


Message édité par --greg-- le 08-07-2002 à 17:56:09
n°173074
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:55:12  profilanswer
 

en fait, je voudrais faire
 

Code :
  1. UPDATE sites SET top=0 WHERE top=1


 
à partir de la troisième entré par exemple
 
ca doit etre faisable simplement quand meme. non ?


---------------
oui oui
n°173075
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 17:55:38  profilanswer
 

ok vais essayer


---------------
oui oui
n°173077
--greg--
Posté le 08-07-2002 à 17:56:28  profilanswer
 

art_dupond a écrit a écrit :

ok vais essayer



voir edit

n°173089
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 18:06:41  profilanswer
 

marche pas :(
 
UPDATE sites SET top=0 where top=1  marche
select id from table where brol=1 order by ordre desc limit 2 marche
 
mais le tout ne marche pas :(


Message édité par art_dupond le 08-07-2002 à 18:07:13

---------------
oui oui
n°173097
--greg--
Posté le 08-07-2002 à 18:16:48  profilanswer
 

art_dupond a écrit a écrit :

marche pas :(
 
UPDATE sites SET top=0 where top=1  marche
select id from table where brol=1 order by ordre desc limit 2 marche
 
mais le tout ne marche pas :(




t sur que t'as tout bien recopié?
et ça marche pas="y'a un message d'erreur" ou bien "ça fait pas ce que je veux" !?

n°173104
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 18:25:45  profilanswer
 

ca marche pas :  
 
You have an error in your SQL syntax near (select id from table where brol=1 order by ordre desc limit 2)' at line 1
 


---------------
oui oui
n°173105
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 18:26:29  profilanswer
 

au cas ou j'aurais fait une connerie,  
 
mon code tel quel:
 
"UPDATE sites SET top=0 where top=1 AND site_id NOT IN (SELECT site_id FROM sites WHERE top=1 ORDER BY nb_clics DESC LIMIT 2)"


---------------
oui oui
n°173108
--greg--
Posté le 08-07-2002 à 18:31:21  profilanswer
 

ha oui euh c vrai, ça marche pas les requetes imbriquées dans mysql, oops.
euh alors donc je sais pas comment tu peux faire.
pê ton probleme se situe plus au niveau du data model :)

n°173114
art_dupond
je suis neuneu... oui oui !!
Posté le 08-07-2002 à 18:44:23  profilanswer
 

ouais ben j'ai jamais appris alors bon...
 
bon, je vais essayer de me débrouiller.
 
merci de ton aide :)
 
 
 :hello:  
 


---------------
oui oui
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mysql] aide pour une pitite requète

 

Sujets relatifs
[PHP/MYSQL] Poll - Sondage - Côte - Top - Winner[MySQL] Diviser une table en +eurs [dérive en MySQL général !]
[mysql] UPDATE : je comprends pas...[Javascript] DOM, tris de tableaux coté client ... AIDE NEDDED
[mysql] nombre d'entree d'une table ?[php mysql] pour gerer des date
[Access] Requete paramétréeProbleme de requete
[MySQL] Solution la plus rapide pour transformation de date[MySQL] Select tables optimized away
Plus de sujets relatifs à : [mysql] aide pour une pitite requète


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR