Requête in WHERE - PHP - Programmation
Marsh Posté le 29-03-2006 à 19:18:52
Oui cela marche mais par la suite quand j'essai d'afficher les données des enregistements ils se mélanges.
Marsh Posté le 29-03-2006 à 19:21:41
trop dur pour toi.
order by est ton ami.
Et c'est du sql, pas du php.
Marsh Posté le 29-03-2006 à 19:32:23
Arf oui c'est du sql j'ai pas fais attention.
Pour le order by ce n'est pas ce que je veux, ca résou pas mon problème. C'est les données des enregistrements qui se mélange, c'est assez bizzare. Juste par exemple l'enregistement 2 qui prend le titre du 1.
Marsh Posté le 29-03-2006 à 19:34:28
pas possible. Montre la requête complète.
Marsh Posté le 29-03-2006 à 19:37:13
Donc 2 tables, t_news et t_theme, la voici:
Code :
|
Marsh Posté le 29-03-2006 à 19:39:19
ok, manque des parenthèses, je pense.
SELECT * FROM t_news, t_theme
WHERE t_news.num_theme=t_theme.the_id
AND (t_news.num_theme='1' OR t_news.num_theme='2')
ORDER BY new_id DESC
Marsh Posté le 29-03-2006 à 19:40:20
TheBosy a écrit : Donc 2 tables, t_news et t_theme, la voici:
|
1) mauvaise cat
2) "where" sert à filtrer pas à faire des jointures
3) ouvre une doc sql
Marsh Posté le 29-03-2006 à 19:42:08
2) ce n'est en aucun cas un pb quand on sait ce qu'on fait.
Marsh Posté le 29-03-2006 à 19:45:13
skeye a écrit : 2) ce n'est en aucun cas un pb quand on sait ce qu'on fait. |
non, where sert à filtrer pas à faire une jointure, c'est lent, pas optimisé, moche, pourri, dégueux
Marsh Posté le 29-03-2006 à 19:46:28
smaragdus a écrit : non, where sert à filtrer pas à faire une jointure, c'est lent, pas optimisé, moche, pourri, dégueux |
Prouve-moi qu'il y a effectivement une différence flagrante avec un SGBD récent.
Marsh Posté le 29-03-2006 à 19:47:21
Merci beaucoup Skeye c'était bien le manque des parenthèses.
Smaragdus merci quand meme mais depuis tjs j'ai fais les jointure dans where et ça m'a jamais posé de problème... Tu es sur que tu as déjà fais du SQL?
Marsh Posté le 29-03-2006 à 19:48:56
TheBosy a écrit : Merci beaucoup Skeye c'était bien le manque des parenthèses. |
euh faudrait rester poli quand même hein...dans l'absolu il a raison, il y a une syntaxe pour ça.
Marsh Posté le 29-03-2006 à 19:52:05
Ah mais je suis poli, j'éspère que ma phrase n'est pas mal prise, ici en belgique cela n'est pas malhonnete, désolé si ca là été pour vous.
Marsh Posté le 29-03-2006 à 19:52:34
(par contre je serais curieux de voir comment organiser certaines de mes requêtes avec des jolis JOIN...)
Marsh Posté le 29-03-2006 à 19:53:38
TheBosy a écrit : Ah mais je suis poli, j'éspère que ma phrase n'est pas mal prise, ici en belgique cela n'est pas malhonnete, désolé si ca là été pour vous. |
Demander à quelqu'un qui vient répondre à une question SQL s'il a déjà fait du sql, c'est un peu du foutage de gueule, quand même...
Marsh Posté le 29-03-2006 à 20:14:15
skeye a écrit : Prouve-moi qu'il y a effectivement une différence flagrante avec un SGBD récent.:o |
C'est pas toujours flagrant car certains SGBD sont optimisés pour pallier à l'ignorance des programmeurs qui envoient des requetes toutes pourries et mal foutues
Marsh Posté le 29-03-2006 à 20:14:56
TheBosy a écrit : Tu es sur que tu as déjà fais du SQL? |
Et toi t'as déjà pensé à ouvrir une doc SQL à la section jointure ?
Marsh Posté le 29-03-2006 à 20:20:16
smaragdus a écrit : C'est pas toujours flagrant car certains SGBD sont optimisés pour pallier à l'ignorance des programmeurs qui envoient des requetes toutes pourries et mal foutues |
Justement c'est là que je voulais en venir, le résultat va être exactement le même ou la différence négligeable dans la grande majorité des cas.
Et personnellement je trouve ça plus lisible, mais ça c'est une question d'habitude.
Bref, c'est une manière de faire qui a au moins le mérite de marcher partout...
Marsh Posté le 29-03-2006 à 20:24:00
skeye a écrit :
|
Et quand c'est pas le cas, tu fais quoi : tu conseilles au client d'acheter un plus gros serveur ?
Citation : Et personnellement je trouve ça plus lisible, mais ça c'est une question d'habitude. |
Non c'est moins lisible, on ne distingue pas le filtrage de la jointure.
C'est sûr que quand on programme comme un porc, on finit par être habitué
Marsh Posté le 29-03-2006 à 20:32:24
smaragdus a écrit : Et quand c'est pas le cas, tu fais quoi : tu conseilles au client d'acheter un plus gros serveur ? |
Exactement.
smaragdus a écrit : Non c'est moins lisible, on ne distingue pas le filtrage de la jointure. |
Si tu le dis, ça doit être ça...
Marsh Posté le 29-03-2006 à 20:59:29
skeye a écrit : Si tu le dis, ça doit être ça... |
En effet, j'ai raison, t'as tort
http://sql.developpez.com/sqlaz/jointures/
Marsh Posté le 29-03-2006 à 21:02:44
smaragdus a écrit : En effet, j'ai raison, t'as tort |
question de point de vue...
http://sql.developpez.com/sqlaz/jointures/#L6
Tu veux faire des requêtes qui marchent partout, tu oublies la syntaxe normalisée...
Marsh Posté le 29-03-2006 à 21:08:02
skeye a écrit : question de point de vue... |
Tu pourrais lire les liens que je donne :
Le INNER JOIN (cas précis de la requete qui nous concerne) est supporté partout
Tu t'enfonces là
Citation : |
Ah mais j'y suis : c'est parce que tu ne sais pas ce qu'est un inner join.
Evite donc de dispenser tes conseils bidons sur cette cat
Cherche pas t'as tort
Marsh Posté le 30-03-2006 à 14:33:11
très intéressant ce lien, j'ai toujours eu du mal sur les jointures, c'est fini !
Marsh Posté le 29-03-2006 à 18:53:12
Bonjour à tous,
Y a-t'il un moyen pour qu'a une requête dans WHERE on puisse par exemple mettre theme=1 et 2 ?
Donc selection des enregistrements ou le theme égal 1 ou 2. J'ai essayé avec theme=1 OR theme=2 mais il est des problèmes par la suite.
Merci d'avance a+
Bosy