Condition dans une requête ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Condition dans une requête ?

Re: Condition dans une requête ?

par Sebe » 06 sept. 2007, 16:26

Tu peux très bien définir plusieurs critères dans un ON ou un WHERE, éventuellement regroupées avec des parenthèse si nécessaire :

Code : Tout sélectionner

ON ss.id = m.topic_emoticon OR m.topic_emoticon = 0
Cela ne fonctionne pas ou j'ai mal compris ! J'ai fait ceci:

Code : Tout sélectionner

"\n INNER JOIN #__fb_smileys AS ss ON ss.id = m.topic_emoticon OR m.topic_emoticon = 0"
Et il n'y plus de listing qui se fait ensuite !

Maintenant, je ne sais pas si je me suis bien exprimé et s'il ne faudrait pas faire une 2e requêtes ?
Dans ma requête initiale, 'm.topic_emoticon' peut avoir une valeur = '0' et dans ce cas il ne peut être trouvé dans la table '#__fb_smileys' un 'id = 0' donc ne serait-il pas possible de faire un truc comme :

Code : Tout sélectionner

If ($topic_emoticon = O) { echo 'Pas d'émoticone'; } else { SELECT ss.id as emoid, ss.code" . "n FROM #__fb_smileys AS ss" . "\n WHERE ( ss.id = $topic_emoticon )" ; echo $code; }
Attention, je suis un peu nul part en programmation ... indulgence :roll:
Par contre pour des raisons d'intégrité, je te suggererais d'éviter les 0 et de préférer les null si ton enregistrement n'est pas lié :)
J'ai pas vraiment le choix car j'utilise des tables déjà faites ... je viens simplement y prendre des infos !

Merci

Re: Condition dans une requête ?

par Ryle » 06 sept. 2007, 10:11

Je voudrais savoir si on peut mettre une condition dans une requête ?
Encore heureux ! :)

Tu peux très bien définir plusieurs critères dans un ON ou un WHERE, éventuellement regroupées avec des parenthèse si nécessaire :

Code : Tout sélectionner

ON ss.id = m.topic_emoticon OR m.topic_emoticon = 0
Par contre pour des raisons d'intégrité, je te suggererais d'éviter les 0 et de préférer les null si ton enregistrement n'est pas lié :)

Condition dans une requête ?

par Sebe » 06 sept. 2007, 09:56

Bonjour,

Je voudrais savoir si on peut mettre une condition dans une requête ?
Voici ma requête:
SELECT m.id as subjectid, m.name, m.time as days, m.subject, m.catid, m.hits, cc.name as catname, m.userid, m.topic_emoticon"
		. "\n FROM #__fb_messages AS m"
		. "\n INNER JOIN #__fb_categories AS cc ON cc.id = m.catid"
		. "\n INNER JOIN #__fb_smileys AS ss ON ss.id = m.topic_emoticon" //topic_emoticon peut être = à 0 !
		. "\n ORDER BY days DESC"
		. "\n LIMIT $count"
		;
En faite, j'ai le champ 'topic_emoticon' qui peut avoir une valeur de '0' mais dans la table 'fb_smileys' il n'y a pas de champs 'ID = 0'

Merci