Rassembler des requetes

sagaff Messages postés 44 Date d'inscription dimanche 9 novembre 2003 Statut Membre Dernière intervention 9 décembre 2008 - 26 déc. 2007 à 14:22
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 26 déc. 2007 à 23:21
Bonjours, je cherche comment je pourrais faire pour rassembler les 3 requetes select en une seule, mais j'ai un peu de mal. Avez vous une idée? Merci

// Download type 1.
$downloadquery = doquery("SELECT * FROM {{table}} WHERE type='1'", "download");

$downloadrow = 0;
$page['type1'] ='';

while ($downloadrow = mysql_fetch_array($downloadquery))
  {
$page['type1'] .='

[# ]
[?do=download&id='.$downloadrow['id'].' '.$downloadrow['title'].' ] - Téléchargé: '.$downloadrow['count'].' fois
'.$downloadrow['content'].'

';

 }
 
// Download type 2.
$downloadquery = doquery("SELECT * FROM {{table}} WHERE type= '2'", "download");

$downloadrow = 0;
$page['type2'] ='';

while ($downloadrow = mysql_fetch_array($downloadquery))
  {
$page['type2'] .='

[# ]
['.$downloadrow['url'].' '.$downloadrow['title'].' ] - Téléchargé: '.$downloadrow['count'].' fois
'.$downloadrow['content'].'

';
  }
 
// Download type 3.
$downloadquery = doquery("SELECT * FROM {{table}} WHERE type='3'", "download");

$downloadrow = 0;
$page['type3'] ='';

while ($downloadrow = mysql_fetch_array($downloadquery))
  {
$page['type3'] .='

[# ]
['.$downloadrow['url'].' '.$downloadrow['title'].'] - Téléchargé: '.$downloadrow['count'].' fois
'.$downloadrow['content'].'

';
  }  

1 réponse

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
26 déc. 2007 à 23:21
Salut,

Tout d'abord, je te recommande de nommer les champs à récupérer, plutôt que d'utiliser * : si demain tu rajoutes 50 champs qui ne te servent que dans une requête, les autres vont les récupérer chaque fois et alourdir d'autant l'espace mémoire utilisé, et le temps processeur pour traiter ça. Si tu ne t'en sers pas, ne les récupère pas.

Ensuite, pour sélectionner des enregistrements dont un champ peut avoir 3 valeurs différentes, tu as deux solutions :

SELECT champs FROM table WHERE champ1=valeur 1 OR champ1=valeur2;

Ou bien :

SELECT champs FROM table WHERE whamp1 IN (valeur1, valeur2, valeur3);

=> http://dev.mysql.com/doc/refman/5.0/fr/select.html
0
Rejoignez-nous