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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  413  414  415  ..  1454  1455  1456  1457  1458  1459
Auteur Sujet :

blabla@web

n°1652754
theredled
● REC
Posté le 04-12-2007 à 16:53:38  profilanswer
 

Reprise du message précédent :

omega2 a écrit :

On fait ça en utilisant des requêtes imbriqués (requête intérieure qui cherche le max et la requête extérieure qui sélectionne les éléments correspondant au max) ou bien en lancant deux requêtes séparé dont la seconde dépend de la première.


requete imbriquée avant le FROM ? t'aurais un tit exemple ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
mood
Publicité
Posté le 04-12-2007 à 16:53:38  profilanswer
 

n°1652762
omega2
Posté le 04-12-2007 à 17:00:12  profilanswer
 

Citation :

select table.machin, table2.truc, table2.bidule from table1 left outer join table2 on table1.col1=table2.col2  
where table2.bidule = (select max(bidule) from table2)

n°1652768
0x90
Posté le 04-12-2007 à 17:05:26  profilanswer
 


 
75 fichiers js ici :D ( concaténés of course )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1652777
theredled
● REC
Posté le 04-12-2007 à 17:14:04  profilanswer
 

omega2 a écrit :

Citation :

select table.machin, table2.truc, table2.bidule from table1 left outer join table2 on table1.col1=table2.col2
where table2.bidule = (select max(bidule) from table2)



Ah oui mais non, j'ai vraiment besoin de faire un GROUP BY (GROUT_CONCAT(), COUNT() etc...) :/

 

Une autre solution ? [:dawao]

 

L'idéal serait de pouvoir faire une sous-requete sur les groupes de lignes groupées, mais c'est pas possible hein ?

Message cité 1 fois
Message édité par theredled le 04-12-2007 à 17:18:20

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1652785
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-12-2007 à 17:21:06  profilanswer
 

theredled a écrit :

...
Comment on fait ça [:dawa]


le sujet traité 400 fois par semaine sur le topic sql :/
 

n°1652794
SICKofitAL​L
misanthrope
Posté le 04-12-2007 à 17:26:38  profilanswer
 

je me permets de poster ici et de faire un peu de pub à l'excellente lib qu'est EXTjs :)
 
Et d'ailleurs la v2 de la lib en question est sortie : http://extjs.com/ :hello:


---------------
We deserve everything that's coming...
n°1652808
gizmo
Posté le 04-12-2007 à 17:38:22  profilanswer
 

anapajari a écrit :


sauf que:

  • PDO fait pas de query caching et que ça résoudra pas son problème.
  • adoDB utilise PDO donc les perfs sont vraisemblablement les mêmes


Et si tu as vraiment besoin d'un système de cache et que tu veux utiliser PDO, tu vas devoir passer par des trucs type http://www.openpb.net/opd.php pour l'émuler.


 
D'une part le caching, dans le cas de PHP, est generalement nettement plus couteux qu'un prepared statement, ce que PDO fait tres bien. D'autre part, adoDB utilise PDO mais avec des tests supplementaire vu qu'il supporte aussi PHP4, et entoure le tout de tout un tas de truc pour la plupart inutiles.
 
Autant adoDB avait un interet avant PHP5, autant depuis qu'il y a PDO, seul les lib d'ORM ont encore un quelconque interet.

n°1652810
theredled
● REC
Posté le 04-12-2007 à 17:40:11  profilanswer
 

anapajari a écrit :


le sujet traité 400 fois par semaine sur le topic sql :/

 



J'aimerais bien [:dawa]

 

Je sais pas si t'as bien pigé la question, parce ça me parait quand même pas mal rare comme problème :/

 

(mes recherches le confirment en tout cas)

Message cité 1 fois
Message édité par theredled le 04-12-2007 à 17:42:28

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1652814
Shinuza
This is unexecpected
Posté le 04-12-2007 à 17:45:39  profilanswer
 

ratibus a écrit :

Juste le jour où je dois implémenter les tree de ExtJs sur mon frontoffice (j'en ai déjà dans mon backoffice) : http://extjs.com/blog/2007/12/04/e [...] -released/
 
Niquel le timing :)


 

SICKofitALL a écrit :

je me permets de poster ici et de faire un peu de pub à l'excellente lib qu'est EXTjs :)
 
Et d'ailleurs la v2 de la lib en question est sortie : http://extjs.com/ :hello:

On est l'élite ou l'est pas [:spamafote]


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1652816
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-12-2007 à 17:45:47  profilanswer
 

theredled a écrit :


J'aimerais bien [:dawa]
Je sais pas si t'as bien pigé la question, parce ça me parait quand même pas mal rare comme problème :/
(mes recherches le confirment en tout cas)


http://forum.hardware.fr/hfr/Progr [...] 0028_1.htm
(10eme post de la cat).
 
Si c'est pas ça ton problème, effectivement j'ai rien pité et re-explique mieux :o

mood
Publicité
Posté le 04-12-2007 à 17:45:47  profilanswer
 

n°1652817
theredled
● REC
Posté le 04-12-2007 à 17:50:21  profilanswer
 

anapajari a écrit :


http://forum.hardware.fr/hfr/Progr [...] 0028_1.htm
(10eme post de la cat).
 
Si c'est pas ça ton problème, effectivement j'ai rien pité et re-explique mieux :o


Si en gros c'est ça, mais déja que j'ai du mal à expliquer le pb, j'ai encore plus de mal à trouver des mot clés pour la recherche [:petrus75]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1652819
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-12-2007 à 17:53:10  profilanswer
 

gizmo a écrit :

D'une part le caching, dans le cas de PHP, est generalement nettement plus couteux qu'un prepared statement, ce que PDO fait tres bien. D'autre part, adoDB utilise PDO mais avec des tests supplementaire vu qu'il supporte aussi PHP4, et entoure le tout de tout un tas de truc pour la plupart inutiles.


Mais port'nawak ça n'a strictement rien a voir.
Un prepared statement stocke le plan d'éxécution de ta requête et absolument pas le résultat.
En mettant en place un système de "cache query", tu stockes le résultat pour une requête et des paramètres données et ce pendant un laps de temps.  
Si bien qu'à la prochaine demande la même requête il n'y a plus de communication avec la bdd mais récupération des données dans le cache ( un fichier dans le cas d'adoDB).
Dans le cas d'une grosse requête dont le résultat ne bouge pas, des prepared statements ne servent pas à grand chose [:spamafote].
note:quand tu te sers de ps, mysql désactive comme un grand son query cache pourrissant d'autant les perfs.

gizmo a écrit :

Autant adoDB avait un interet avant PHP5, autant depuis qu'il y a PDO, seul les lib d'ORM ont encore un quelconque interet.


ou ai-je dit le contraire?

n°1652823
SICKofitAL​L
misanthrope
Posté le 04-12-2007 à 17:54:58  profilanswer
 

Shinuza a écrit :

On est l'élite ou l'est pas [:spamafote]


 [:rhetorie du chaos]


---------------
We deserve everything that's coming...
n°1652824
omega2
Posté le 04-12-2007 à 17:55:48  profilanswer
 

theredled a écrit :


Ah oui mais non, j'ai vraiment besoin de faire un GROUP BY (GROUT_CONCAT(), COUNT() etc...) :/
 
Une autre solution ? [:dawao]
 
L'idéal serait de pouvoir faire une sous-requete sur les groupes de lignes groupées, mais c'est pas possible hein ?

Et heu ... qu'est ce qui t'empêche de le faire le group by que ça soit dans la requête extérieure ou la requête intérieure ou les deux?
D'ailleurs de mémoire, tu peux aussi faire référence à des colonnes de la requête extérieure dans la requête intérieure si tu veux vraiment le max par valeur du champX.

n°1652829
theredled
● REC
Posté le 04-12-2007 à 18:01:32  profilanswer
 

omega2 a écrit :

Et heu ... qu'est ce qui t'empêche de le faire le group by que ça soit dans la requête extérieure ou la requête intérieure ou les deux?
D'ailleurs de mémoire, tu peux aussi faire référence à des colonnes de la requête extérieure dans la requête intérieure si tu veux vraiment le max par valeur du champX.


Parce que dans tous les cas tu me fais faire un WHERE qui restreint le nb de lignes sortantes avant GROUP BY [:spamafote]

 

Menfin je suis sur une solution un peu trop simple pour être efficace je sens : mettre un ORDER BY avant le GROUP BY [:dawao]

 

edit : c'est pas possible [:joce]


Message édité par theredled le 04-12-2007 à 18:07:18

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1652831
omega2
Posté le 04-12-2007 à 18:07:18  profilanswer
 

therEDLED > Tu nous dit que tu veux une seule ligne à la place des 5 lignes qui ont le même champX. Normal que le where que je te proposes limite le nombre de ligne. Si la solution que je te proposais retournais exactement là même chose que ce que tu nous montres alors c'est que je me serais sacrément planté.
EDIt : Evidement, vu que tu nous donnes un résultat sans aucune autre info, je ne peux que te filer un exemple générique. C'est à toi d'adapter la requête, en fonction de tes tables et de tes données. :P

Message cité 1 fois
Message édité par omega2 le 04-12-2007 à 18:09:25
n°1652837
theredled
● REC
Posté le 04-12-2007 à 18:11:46  profilanswer
 

omega2 a écrit :

therEDLED > Tu nous dit que tu veux une seule ligne à la place des 5 lignes qui ont le même champX. Normal que le where que je te proposes limite le nombre de ligne. Si la solution que je te proposais retournais exactement là même chose que ce que tu nous montres alors c'est que je me serais sacrément planté.


Oui je veux une seule ligne, mais je veux par exemple pouvoir faire un COUNT() comptant le nombre de lignes groupées (d'où le group by). Si je mets une condition supplémentaire dans la requete principale, ce résultat ne sera pas le même.

 

J'ai pas mis ce count dans le résultat voulu pour pas compliquer [:dawao]

 

Je suis clair là ou pas ? :/

 

Fin je crois que ça correspond au truc dont anapajari dit qu'il est traité toutes les semaines, donc je vais essayer de chercher :/


Message édité par theredled le 04-12-2007 à 18:15:22

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1652841
omega2
Posté le 04-12-2007 à 18:15:56  profilanswer
 

NIARRRRGL ...
C'est qu'elle version de mysql que t'as déjà ( histoire de savoir si t'as droit aux "from table1, (select .... from table1) t2" )


Message édité par omega2 le 04-12-2007 à 18:16:15
n°1652844
theredled
● REC
Posté le 04-12-2007 à 18:17:55  profilanswer
 

oui (5 et quelques)


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1652845
theredled
● REC
Posté le 04-12-2007 à 18:18:58  profilanswer
 

enfin avec des sous requetes je devrais y arriver tout seul, je cherchais surtout une méthode simple... genre un ORDER BY pré-GROUP BY


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1652848
omega2
Posté le 04-12-2007 à 18:23:34  profilanswer
 

ha, alors ça simplifie drôlement le problème. Tu fais simplement une requête qui te retourne tout ce que tu peux obtenir facilement avec ton group by et tu la met dans le from de l'autre afin de récupérer les éléments qui te manquent.
 
Une sorte de :

Citation :

select t1.champY, t2.champX, t2.champPouet, t2.nb
from table1 t1, (select champX, max(champPouet), count(*) nb from table1 group by champX) t2  
where t1.champX=t2.champX and t1.champPouet=t2.champPouet


n°1652851
theredled
● REC
Posté le 04-12-2007 à 18:32:08  profilanswer
 

omega2 a écrit :

ha, alors ça simplifie drôlement le problème. Tu fais simplement une requête qui te retourne tout ce que tu peux obtenir facilement avec ton group by et tu la met dans le from de l'autre afin de récupérer les éléments qui te manquent.

 

Une sorte de :

Citation :

select t1.champY, t2.champX, t2.champPouet, t2.nb
from table1 t1, (select champX, max(champPouet), count(*) nb from table1 group by champX) t2
where t1.champX=t2.champX and t1.champPouet=t2.champPouet




I did :

Code :
  1. SELECT table1.champX, t2.champY, count(*) AS nb
  2. FROM table1
  3. INNER JOIN (
  4.   SELECT champY, id FROM table1 ORDER BY champPouet DESC LIMIT 1       #je récupere le champ qui chie
  5. ) AS t2 ON t2.id = table1.id
  6. GROUP BY champX
 

edit : et ça marche :o ça va plus vite que de faire une recherche sur HFR :o


Message édité par theredled le 04-12-2007 à 18:39:39

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1652852
xtof_83
Freeride Spirit
Posté le 04-12-2007 à 18:36:56  profilanswer
 

xtof_83 a écrit :

Sinon petite question, niveau unité de mesure. là toujours pour des raisons d'accessibilité je passe mes éléments de px à em.
 
Mais ou s'arrêter ? je met des em, que au width, height des éléments, ou aussi au margin, padding, border etc etc ???
 
Sinon, sur l'appli, le background, est une image représentant une ombre, et donc en agrandissant les éléments ça fait très moche car ça s'agrandi pas...
 
une idée ?


 
 :whistle:

n°1652853
ratibus
Posté le 04-12-2007 à 18:38:03  profilanswer
 

0x90 a écrit :


 
75 fichiers js ici :D ( concaténés of course )


Ah je suis pas le seul merci :D

Shinuza a écrit :


 
On est l'élite ou l'est pas [:spamafote]


:D
 
Bon je viens de finir mon filtre pour symfony qui me remplace tout mes <script> par un seul (idem pour les CSS) avec en plus une gestion du versionning (pour l'instant j'utilise la date de modification la + élevée des JS concaténés). J'avance dans les Yahoo Rules :)
Me reste à finir le paramétrage d'apache avec mod_expires et mod_deflate, utiliser YUI compressor (ou JSMin) après la concaténation, et enfin gérer correctement ma tripotée d'images utilisées dans les CSS.

n°1652856
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 04-12-2007 à 18:48:12  profilanswer
 

ratibus a écrit :


Et ton formulaire initial, ça n'a pas de sens qu'il soit en GET (genre une recherche) ?


Non, y a un champ qui est un fichier [:joce]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°1652902
skeye
Posté le 04-12-2007 à 20:37:21  profilanswer
 

Taiche a écrit :


En même temps, ça a le mérite d'aborder un sujet pas trop con : comment vous faites pour organiser vos CSS ? Un par page avec tout dedans ou y a un découpage "logique" pour pouvoir réutiliser certains styles sur plusieurs pages ? Ou autre chose ?

 

Deux css. Une avec les styles statiques, et une générée en php à-partir de la conf du site.[:joce]


Message édité par skeye le 04-12-2007 à 20:37:33

---------------
Can't buy what I want because it's free -
n°1652907
Dj YeLL
$question = $to_be || !$to_be;
Posté le 04-12-2007 à 21:03:24  profilanswer
 

Si j'ai cette table :


ID | PARENT_ID | NAME | COUNTER
 1 |     0     | AAAA |    0
 2 |     1     | BBBB |    0
 3 |     1     | CCCC |    0
 4 |     2     | DDDD |    0
 5 |     2     | EEEE |    0
 6 |     3     | FFFF |    0


Et celle ci :


ID | CAT_ID | NAME
 1 |    6   | XXXX
 1 |    5   | YYYY
 1 |    6   | ZZZZ


Comment faire pour mettre à jour le champ counter de la table 1 en fonction des enregistrements de la table 2 ?
 
En gros dans l'exemple précédent, le résultat devrait être :


ID | PARENT_ID | NAME | COUNTER
 1 |     0     | AAAA |    3
 2 |     1     | BBBB |    1
 3 |     1     | CCCC |    2
 4 |     2     | DDDD |    0
 5 |     2     | EEEE |    1
 6 |     3     | FFFF |    2


 
MySQL 3.23 tjs :/


---------------
Gamertag: CoteBlack YeLL
n°1652914
skeye
Posté le 04-12-2007 à 21:08:52  profilanswer
 

Dj YeLL a écrit :

Si j'ai cette table :


ID | PARENT_ID | NAME | COUNTER
 1 |     0     | AAAA |    0
 2 |     1     | BBBB |    0
 3 |     1     | CCCC |    0
 4 |     2     | DDDD |    0
 5 |     2     | EEEE |    0
 6 |     3     | FFFF |    0


Et celle ci :


ID | CAT_ID | NAME
 1 |    6   | XXXX
 1 |    5   | YYYY
 1 |    6   | ZZZZ


Comment faire pour mettre à jour le champ counter de la table 1 en fonction des enregistrements de la table 2 ?
 
En gros dans l'exemple précédent, le résultat devrait être :


ID | PARENT_ID | NAME | COUNTER
 1 |     0     | AAAA |    3
 2 |     1     | BBBB |    1
 3 |     1     | CCCC |    2
 4 |     2     | DDDD |    0
 5 |     2     | EEEE |    1
 6 |     3     | FFFF |    2


 
MySQL 3.23 tjs :/


 
vue la question et les contraintes, faire ça en php au lieu de batailler avec du sql alambiqué me parait raisonnable.[:dawa]


---------------
Can't buy what I want because it's free -
n°1652932
Dj YeLL
$question = $to_be || !$to_be;
Posté le 04-12-2007 à 21:36:51  profilanswer
 

Oué mais ça donnerait quoi ?
 
J'ai bien un début d'idée, mais ça me semble bien crade :D
 
SELECT c.id, c.parent_id, c.counter, COUNT(*) FROM categories
INNER JOIN content ON content.cat_id = c.id
GROUP BY c.id
 
Puis pour chaque résultat :
1> mettre le compteur à jour pour l'ID
2> Si le parent est != 0 alors incrémenter d'autant le compteur du parent
3> Tjs si le parent est != 0 alors récupérer l'ID du parent du parent ( [:tinostar] ) afin de le mettre à jour
4> et ainsi de suite tant que l'id du parent du parent du parent du parent [...] ne vaut pas 0 ...
 
Youpi :whistle:


---------------
Gamertag: CoteBlack YeLL
n°1652934
skeye
Posté le 04-12-2007 à 21:39:58  profilanswer
 

Bah t'as compris le principe.[:dawa]


---------------
Can't buy what I want because it's free -
n°1652975
ratibus
Posté le 04-12-2007 à 22:39:56  profilanswer
 

Dj YeLL a écrit :

Oué mais ça donnerait quoi ?
 
J'ai bien un début d'idée, mais ça me semble bien crade :D
 
SELECT c.id, c.parent_id, c.counter, COUNT(*) FROM categories
INNER JOIN content ON content.cat_id = c.id
GROUP BY c.id
 
Puis pour chaque résultat :
1> mettre le compteur à jour pour l'ID
2> Si le parent est != 0 alors incrémenter d'autant le compteur du parent
3> Tjs si le parent est != 0 alors récupérer l'ID du parent du parent ( [:tinostar] ) afin de le mettre à jour
4> et ainsi de suite tant que l'id du parent du parent du parent du parent [...] ne vaut pas 0 ...
 
Youpi :whistle:


Tu devrais regarder ça : http://dev.mysql.com/tech-resource [...] -data.html
Utilisation des nested sets pour la gestion des données hiérarchiques.
 
Si t'es toujours sur ton projet symfony, y a un plugin qui permet d'utiliser ce concept de manière transparente :  
http://trac.symfony-project.com/wi [...] viorPlugin
 
C'est pas la solution ultime mais si tu fais essentiellement des lectures ça l'est :D

n°1653040
Shinuza
This is unexecpected
Posté le 05-12-2007 à 03:55:37  profilanswer
 

Code :
  1. Log.Describe('Should fail', {
  2.     "Recursive should_fail() will fail because first call won't fail" : function() {
  3.         var mustSuceed = function() {
  4.             Log.ValueOf(6).should_be(6);
  5.         }
  6.         
  7.         var willFail = function() {
  8.             Log.ValueOf(mustSuceed).should_fail();
  9.         }
  10.         
  11.         Log.ValueOf(willFail).should_fail();
  12.     }
  13. });
 

Bon, bah au moins, ça marche [:petrus75]


Message édité par Shinuza le 05-12-2007 à 03:59:11

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1653053
inti
t'as mieux mais tapir
Posté le 05-12-2007 à 08:04:23  profilanswer
 

C'est normal que ie 6 ne sache pas gérer pas un font-weight : bold; sur un texte en small-caps [:petrus75] ?

n°1653068
gatsu35
Blablaté par Harko
Posté le 05-12-2007 à 08:30:48  profilanswer
 

ben tu sais le texte est tellement petit que le bold est presque invisible, c'est un peut comme un texte en Arial 8px, entre le normal et le bold tu la voit pas la différence

n°1653073
inti
t'as mieux mais tapir
Posté le 05-12-2007 à 08:35:36  profilanswer
 

1ère fois que j'utilise, mauvaise surprise classique, fx a un bon rendu du truc, mais ie se ramasse.
Encore que l'effet produit par ie avec seulement la 1ère lettre de la phrase en gras est assez joli, je vais magouiller pour avoir la même chose avec fx :D

n°1653095
Dj YeLL
$question = $to_be || !$to_be;
Posté le 05-12-2007 à 10:04:17  profilanswer
 

skeye a écrit :

Bah t'as compris le principe.[:dawa]


Ok :D

ratibus a écrit :


Tu devrais regarder ça : http://dev.mysql.com/tech-resource [...] -data.html
Utilisation des nested sets pour la gestion des données hiérarchiques.
 
Si t'es toujours sur ton projet symfony, y a un plugin qui permet d'utiliser ce concept de manière transparente :  
http://trac.symfony-project.com/wi [...] viorPlugin
 
C'est pas la solution ultime mais si tu fais essentiellement des lectures ça l'est :D


 
Ouaip je connais le principe, mais ce n'est malheureusement pas ce que y est en place actuellement, et je n'ai pas le temps de transformer l'appli actuelle (le chef est déjà en train de péter une pile à cause de la durée de dev actuelle)
 
Et non, là ce n'est pas le projet Symfony, mais j'ai justement implémenté ce système de hiérarchie sur celui ci, donc ce plugin risque de m'être fort utile :D :jap:


---------------
Gamertag: CoteBlack YeLL
n°1653116
skeye
Posté le 05-12-2007 à 10:42:50  profilanswer
 

Dites, un truc m'énerve : j'ai une image jpeg dans une variable, et je veux la manipuler avec gd.
Ya pas moyen de créer une ressource d'image sans écrire ma variable dans un fichier et faire un imagecreatefromjpeg() derrière?[:pingouino]

 

(genre un stringstream, quoi.:o)

 

[edit]

 

BOn, ya un machin dans PEAR...à voir : http://pear.php.net/manual/fr/pack [...] am-var.php

Message cité 1 fois
Message édité par skeye le 05-12-2007 à 10:49:12

---------------
Can't buy what I want because it's free -
n°1653117
Dj YeLL
$question = $to_be || !$to_be;
Posté le 05-12-2007 à 10:43:04  profilanswer
 

Bon ça devient bon, j'arrive me démerder :jap:

 

Juste une question encore. Si j'ai un tableau comme ça :

 

array(5 => 23, 7 => 12, 9 => 41)

 

Les clés étant les ID et les valeurs étant celles à mettre à jour dans la table.

 

On peut me confirmer que je suis obligé de faire une boucle avec des UPDATE, et qu'il n'existe pas de moyen efficace de faire plusieurs UPDATE en une seule requête ?

 

re- :jap:

Message cité 2 fois
Message édité par Dj YeLL le 05-12-2007 à 10:43:17

---------------
Gamertag: CoteBlack YeLL
n°1653155
ratibus
Posté le 05-12-2007 à 11:16:40  profilanswer
 

skeye a écrit :

Dites, un truc m'énerve : j'ai une image jpeg dans une variable, et je veux la manipuler avec gd.
Ya pas moyen de créer une ressource d'image sans écrire ma variable dans un fichier et faire un imagecreatefromjpeg() derrière?[:pingouino]
 
(genre un stringstream, quoi.:o)
 
[edit]
 
BOn, ya un machin dans PEAR...à voir : http://pear.php.net/manual/fr/pack [...] am-var.php


Genre ça en fait : http://fr2.php.net/manual/en/funct [...] string.php :o

Dj YeLL a écrit :

Bon ça devient bon, j'arrive me démerder :jap:
 
Juste une question encore. Si j'ai un tableau comme ça :
 
array(5 => 23, 7 => 12, 9 => 41)
 
Les clés étant les ID et les valeurs étant celles à mettre à jour dans la table.
 
On peut me confirmer que je suis obligé de faire une boucle avec des UPDATE, et qu'il n'existe pas de moyen efficace de faire plusieurs UPDATE en une seule requête ?
 
re- :jap:


Non pas moyen ;)
 

n°1653164
omega2
Posté le 05-12-2007 à 11:25:47  profilanswer
 

Dj YeLL a écrit :

Bon ça devient bon, j'arrive me démerder :jap:
 
Juste une question encore. Si j'ai un tableau comme ça :
 
array(5 => 23, 7 => 12, 9 => 41)
 
Les clés étant les ID et les valeurs étant celles à mettre à jour dans la table.
 
On peut me confirmer que je suis obligé de faire une boucle avec des UPDATE, et qu'il n'existe pas de moyen efficace de faire plusieurs UPDATE en une seule requête ?
 
re- :jap:


Avec mysql, c'est possible mais la requête est super dure à relire avec des case dans la partie "set".
En pratique, je n'ai vu ça qu'une seule fois et ça faisait très bidouille même si on ne peut pas toujours faire autrement (notament s'il y a une boucle dans les remplacements de chiffre du genre 1 => 2, 2 => 3, 3=> 1).


Message édité par omega2 le 05-12-2007 à 11:27:03
n°1653172
Dj YeLL
$question = $to_be || !$to_be;
Posté le 05-12-2007 à 11:51:06  profilanswer
 

Ok merci :) Je ferai sans, c'est une reqûete cron qui sera exécutée 1 fois de temps en temps seulement, pour remettre les compteurs à jour, donc c'est pas un problème.

 

Donc pour une hiérarchie à 4 niveau, j'en suis là (ça fonctionne très bien) :

 

NIVEAU 4

Code :
  1. SELECT t4.id, COUNT(c.id) AS num
  2. FROM categories AS t1
  3. LEFT JOIN categories AS t2 ON t2.parent_id = t1.id
  4. LEFT JOIN categories AS t3 ON t3.parent_id = t2.id
  5. LEFT JOIN categories AS t4 ON t4.parent_id = t3.id
  6. LEFT JOIN content AS c ON c.category_id = t4.id
  7. WHERE t1.parent_id = 0 AND c.id IS NOT NULL
  8. GROUP BY t4.id


 
NIVEAU 3

Code :
  1. SELECT t3.id, (COALESCE(SUM(t4.counter), 0) + COUNT(c.id)) AS num
  2. FROM categories AS t1
  3. LEFT JOIN categories AS t2 ON t2.parent_id = t1.id
  4. LEFT JOIN categories AS t3 ON t3.parent_id = t2.id
  5. LEFT JOIN categories AS t4 ON t4.parent_id = t3.id
  6. LEFT JOIN content AS c ON c.category_id = t3.id
  7. WHERE t1.parent_id = 0 AND (c.id IS NOT NULL OR t4.counter > 0)
  8. GROUP BY t3.id


 
NIVEAU 2

Code :
  1. SELECT t2.id, (COALESCE(SUM(t3.counter), 0) + COUNT(c.id)) AS num
  2. FROM categories AS t1
  3. LEFT JOIN categories AS t2 ON t2.parent_id = t1.id
  4. LEFT JOIN categories AS t3 ON t3.parent_id = t2.id
  5. LEFT JOIN content AS c ON c.category_id = t2.id
  6. WHERE t1.parent_id = 0 AND (c.id IS NOT NULL OR t3.counter > 0)
  7. GROUP BY t2.id
 

NIVEAU 1

Code :
  1. SELECT t1.id, (COALESCE(SUM(t2.counter), 0) + COUNT(c.id)) AS num
  2. FROM categories AS t1
  3. LEFT JOIN categories AS t2 ON t2.parent_id = t1.id
  4. LEFT JOIN content AS c ON c.category_id = t1.id
  5. WHERE t1.parent_id = 0 AND (c.id IS NOT NULL OR t2.counter > 0)
  6. GROUP BY t1.id
 

Si jamais ça peut servir à quelqu'un, ne sait-on jamais :D

 

Edit : Chaque requête retourne donc les paires [ID] => [COMPTEUR]
Pour chaque résultat il faut donc faire un

Code :
  1. UPDATE categories SET counter = [COMPTEUR] WHERE id = [ID]


Message édité par Dj YeLL le 05-12-2007 à 11:52:45

---------------
Gamertag: CoteBlack YeLL
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  413  414  415  ..  1454  1455  1456  1457  1458  1459

Aller à :
Ajouter une réponse
 

Sujets relatifs
blabla 3blabla 2
PUTAIN HARKO TU AS FERM2 BLABLA ![Beaucoup de blabla pour rien : post à effacer] Compiler .bat
variable1="blabla + variable2 +blala : c'est possible ??[PHP & regex] "blabla blabla file.ext?point=444 blabla" Recupérer 444
mail("celine@hotmail.com"," sujet","blabla"); pose une err ! Help[MySQL] WHERE 'blabla' compris dans le champ truc
[blabla@olympe] Le topic du modo, dieu de la fibre et du monde[PHP / BlaBla - limite]
Plus de sujets relatifs à : blabla@web


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)