8795 sujets

Développement web côté serveur, CMS

Bonjour, je me demande si il y a possibilité de simplifier ces 3 boucles php, pour qu'elles utilisent tous les 3 une seule et unique requête php.

Actuellement, ca exécute 3 fois la même requête.


for ($i=1; $i<=3; $i++)
   {
   
   $item = doquery("SELECT id FROM {{table}} WHERE id='1'", "items");
   $item = mysql_fetch_array($item);
            
         $page .= 'text';
      
   }

   for ($i=4; $i<=7; $i++)
   {
   
   $item = doquery("SELECT id FROM {{table}} WHERE id='1'", "items");
   $item = mysql_fetch_array($item);
            
         $page .= 'text';
      
   }

   for ($i=8; $i<=11; $i++)
   {
   
   $item = doquery("SELECT id FROM {{table}} WHERE id='1'", "items");
   $item = mysql_fetch_array($item);
            
         $page .= 'text';
      
   } 


merci
Bonjour,

(je préviens de suite, je ne suis pas une pro en php Smiley rolleyes ).

Je ne comprends pas bien pourquoi tu fais ça ? Pourquoi ne pas utiliser une seule boucle ?

for ($i=1; $i<=11; $i++){}


Ou alors tes trois boucles se trouvent à des endroits différents dans ton code, si oui ce serait bien de le préciser, et dans ce cas, utiliser une fonction ?

Sinon, s'il s'agit à chaque fois de récupérer les $i premiers enregistrements, ça doit pouvoir se faire directement en une seule requête SQL, sans envoyer $i fois ladite requête.
Modifié par mistike (30 Nov 2008 - 16:05)
Oui exact, les boucles se trouvent dans des endroits différents.

Mais si j'utilise une fonction

exemple :

function boucle($i1, $i2){

for ($i=$i1; $i<=$i2; $i++)
	{
   
   $item = doquery("SELECT id FROM {{table}} WHERE id='1'", "items");
   $item = mysql_fetch_array($item);

$page = 'texte';

}

return $page;

}


Si je déclare 3 fois cette fonction dans la page, ca revient à exécuter 3 fois la requete?

Ca revient pas au meme ?
Modifié par sff (30 Nov 2008 - 18:45)
Hello,

Qu'est-ce que cette fonction doQuery ? Ce n'est pas une fonction php de base, quel est son effet ?

Je ne comprends pas non plus l'interet de rechercher 11 fois l'item à l'id=1 (11 fois le même donc) et d'ajouter à ta variable $page un texte statique, sans rapport avec la requete (text)

Je pense que tu a "trop" simplifié ton exemple et qu'au final il n'a plus vraiment de sens...