Accueil > Forum > > > > Optimisation d'une requête complexe via boucle for()
Optimisation d'une requête complexe via boucle for()
lundi 14 juin 2010 à 13:26:10 |
Optimisation d'une requête complexe via boucle for()

monoski
|
J'ai une requête qui affiche une certaine récurrence, mais j'ai du mal à inventer une incrémentation de type +1 dans des noms de variables php est-ce possible ?
Quoiqu'il en soit j'ai un code extrêmement lourd :
Code PHP : <option value="<? echo $idtete;?>" selected="selected"><? echo $fet2['name'];?></option>
<?
if ($fetch['slot1'] == NULL)
{}
else
{
$slot1 = $fetch['slot1'];
$equip2 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot1' AND type='pied'") or die(mysql_error());
$aff = mysql_fetch_assoc($equip2);
$row = mysql_num_rows($equip2);
if($row>0)
{
echo '<option value="',$aff['id'],'">',$aff['name'],'</option>';
}
}
if ($fetch['slot2'] == NULL)
{}
else
{$slot2 = $fetch['slot2'];
$equip3 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot2' AND type='tete' ") or die(mysql_error());
$aff2 = mysql_fetch_assoc($equip3);
$row2 = mysql_num_rows ($equip3);
if($row2>0)
{
echo '<option value="',$aff2['id'],'">',$aff2['name'],'</option>';
}
}
if ($fetch['slot3'] == NULL)
{}
else
{$slot3 = $fetch['slot3'];
$equip4 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot3' AND type='tete' ") or die(mysql_error());
$aff3 = mysql_fetch_assoc($equip4);
$row3 = mysql_num_rows ($equip4);
if($row2>0)
{
echo '<option value="',$aff3['id'],'">',$aff3['name'],'</option>';
}
}
if ($fetch['slot4'] == NULL)
{}
else
{$slot4 = $fetch['slot4'];
$equip5 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot4' AND type='tete' ") or die(mysql_error());
$aff4 = mysql_fetch_assoc($equip5);
$row4 = mysql_num_rows ($equip5);
if($row4>0)
{
echo '<option value="',$aff4['id'],'">',$aff4['name'],'</option>';
}
}
if ($fetch['slot5'] == NULL)
{}
else
{$slot5 = $fetch['slot5'];
$equip6 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot5' AND type='tete' ") or die(mysql_error());
$aff5 = mysql_fetch_assoc($equip6);
$row5 = mysql_num_rows ($equip6);
if($row5>0)
{
echo '<option value="',$aff5['id'],'">',$aff5['name'],'</option>';
}
}
if ($fetch['slot6'] == NULL)
{}
else
{$slot6 = $fetch['slot6'];
$equip7 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot6' AND type='tete' ") or die(mysql_error());
$aff6 = mysql_fetch_assoc($equip7);
$row6 = mysql_num_rows ($equip7);
if($row6>0)
{
echo '<option value="',$aff6['id'],'">',$aff6['name'],'</option>';
}
}
if ($fetch['slot7'] == NULL)
{}
else
{$slot7 = $fetch['slot7'];
$equip8 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot7' AND type='tete' ") or die(mysql_error());
$aff7 = mysql_fetch_assoc($equip8);
$row7 = mysql_num_rows ($equip8);
if($row7>0)
{
echo '<option value="',$aff7['id'],'">',$aff7['name'],'</option>';
}
}
if ($fetch['slot8'] == NULL)
{}
else
{$slot8 = $fetch['slot8'];
$equip9 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot8' AND type='tete' ") or die(mysql_error());
$aff8 = mysql_fetch_assoc($equip9);
$row8 = mysql_num_rows ($equip9);
if($row8>0)
{
echo '<option value="',$aff8['id'],'">',$aff8['name'],'</option>';
}
}
if ($fetch['slot9'] == NULL)
{}
else
{$slot9 = $fetch['slot9'];
$equip10 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot9' AND type='tete' ") or die(mysql_error());
$aff9 = mysql_fetch_assoc($equip10);
$row9 = mysql_num_rows ($equip10);
if($row9>0)
{
echo '<option value="',$aff9['id'],'">',$aff9['name'],'</option>';
}
}
if ($fetch['slot10'] == NULL)
{}
else
{$slot10 = $fetch['slot10'];
$equip11 = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slot10' AND type='tete' ") or die(mysql_error());
$aff10 = mysql_fetch_assoc($equip11);
$row10 = mysql_num_rows ($equip11);
if($row10>0)
{
echo '<option value="',$aff10['id'],'">',$aff10['name'],'</option>';
}
}
?>
Est-il possible d'optimiser cela via une boucle for() car ma page contient 6 fois ce type d'exemple et c'est ahurissant ^^ ?
Merci pour votre lecture :)
|
|
lundi 14 juin 2010 à 15:07:39 |
Re : Optimisation d'une requête complexe via boucle for()

chino18
|
Salut.
Si tu veux créer des variables dynamiques, et pour reprendre un peu ton exemple, tu peux faire quelque chose comme:
Code PHP :
for($i=1; $i<10; $i++){
$nom_de_ta_variable = "slot".$i;
// création de la variable
${$nom_de_ta_variable} = "valeur bidon";
/*
ton traitement...
*/
}
A chaque passage de boucle, tu auras $slot1, $slot2, $slot3...
A+
-- message approuvé par Jean-Claude Van Damme --
|
|
lundi 14 juin 2010 à 16:34:52 |
Re : Optimisation d'une requête complexe via boucle for()

monoski
|
Hum oki, bon j'en suis là :
<option value="<? echo $idtete;?>" selected="selected"><? echo $fet2['name'];?></option>
<?
for($i=1; $i<10; $i++)
{
$slotx = "slot".$i;
$fetchs = "fetch".$i;
if ($fetchs['$slotx'] == NULL)
{}
else
{
$slots = "slot".$i;
${$slots} = $fetchs['$slotx'];
$equips = "equip".$i;
${$equips} = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slots' AND type='pied'") or die(mysql_error());
$affs = "aff".$i;
${affs} = mysql_fetch_assoc($equips);
$rows = "row".$i;
${rows} = mysql_num_rows($equips);
if($rows>0)
{
echo '<option value="',$affs['id'],'">',$affs['name'],'</option>';
}
}
}
?>
Sauf que ça ne marche pas, j'ai du faire une erreur :'(
Je vous tiens au courant dès que j'ai trouvé. Ya peut être des choses que je peux pas écrire comme je l'ai fais. Si quelqu'un détecte des erreurs de syntaxes. :)
|
|
lundi 14 juin 2010 à 16:40:35 |
Re : Optimisation d'une requête complexe via boucle for()

monoski
|
Petite correction :
Code PHP : <option value="<? echo $idtete;?>" selected="selected"><? echo $fet2['name'];?></option>
<?
for($i=1; $i<10; $i++)
{
$slotx = "slot".$i;
$fetchs = "fetch".$i;
if ($fetchs['$slotx'] == NULL)
{}
else
{
${$slotx} = $fetchs['$slotx'];
$equips = "equip".$i;
${$equips} = mysql_query("SELECT name,id FROM elfik_objet WHERE id='$slotx' AND type='pied'") or die(mysql_error());
$affs = "aff".$i;
${affs} = mysql_fetch_assoc($equips);
$rows = "row".$i;
${rows} = mysql_num_rows($equips);
if($rows>0)
{
echo '<option value="',$affs['id'],'">',$affs['name'],'</option>';
}
}
}
|
|
lundi 14 juin 2010 à 16:40:53 |
Re : Optimisation d'une requête complexe via boucle for()

monoski
|
PS : ça ne marche toujours pas :p
|
|
lundi 14 juin 2010 à 19:14:57 |
Re : Optimisation d'une requête complexe via boucle for()

monoski
|
Ca marche toujours pas mais j'ai corrigé une erreur supplémentaire :
Code PHP : <?
for($i=1; $i<10; $i++)
{
$slotx = "slot".$i;
$fetchs = "fetch".$i;
if ($fetch['$slotx'] == NULL)
{}
else
{
${$slotx} = $fetch['$slotx'];
$equips = "equip".$i;
${$equips} = mysql_query("SELECT name,id FROM elfik_objet WHERE id='${$slotx}' AND type='pied'") or die(mysql_error());
$affs = "aff".$i;
${affs} = mysql_fetch_assoc(${$equips});
$rows = "row".$i;
${rows} = mysql_num_rows(${$equips});
if(${rows}>0)
{
echo '<option value="',${affs}['id'],'">',${affs}['name'],'</option>';
}
}
}
?>
|
|
lundi 14 juin 2010 à 19:22:39 |
Re : Optimisation d'une requête complexe via boucle for()

monoski
|
La même... Mais là je sèche !
Code PHP : <option value="<? echo $idtete;?>" selected="selected"><? echo $fet2['name'];?></option>
<?
for($i=1; $i<11; $i++)
{
$slotx = "slot".$i;
$fetchs = "fetch".$i;
if ($fetch['$slotx'] == NULL)
{}
else
{
${$slotx} = $fetch['$slotx'];
$equips = "equip".$i;
${$equips} = mysql_query("SELECT name,id FROM elfik_objet WHERE id='${$slotx}' AND type='pied'") or die(mysql_error());
$affs = "aff".$i;
${$affs} = mysql_fetch_assoc(${$equips});
$rows = "row".$i;
${$rows} = mysql_num_rows(${$equips});
if(${$rows}>0)
{
echo '<option value="',${$affs}['id'],'">',${$affs}['name'],'</option>';
}
}
}
?>
|
|
mardi 15 juin 2010 à 00:54:55 |
Re : Optimisation d'une requête complexe via boucle for()

monoski
|
Je trouve vraiment rien d'autre, si vous avez une solution ...
|
|
mardi 15 juin 2010 à 08:38:48 |
Re : Optimisation d'une requête complexe via boucle for()

chino18
|
Réponse acceptée !
Mmm bon.
Pour commencer, n'écris pas
Code PHP :
mais
Code PHP :
Ensuite, qu'est-ce que tu entends par "ca ne marche pas"?
As-tu un message d'erreur, ou un warning, etc ?
Je te conseille de vérifier ta requête. Fais un "echo" pour tester si elle est correcte.
-- message approuvé par Jean-Claude Van Damme --
|
|
mardi 15 juin 2010 à 15:29:44 |
Re : Optimisation d'une requête complexe via boucle for()

monoski
|
Génial ça marche maintenant :)
Merci beaucoup coco :)
|
|
Cette discussion est classée dans : mysql, id, name, fetch, if
Répondre à ce message
Sujets en rapport avec ce message
mysql_fetch_row [ par angelique ]
Bonjour,Après avoir rempli un formulaire, je voudrais utiliser les résultats d'une requête pour alimenter une autre table de ma base :$resultatid = my
Petite question concernant mysql_fetch_object [ par ceeno ]
Bonjour,Je souhaiterais savoir une petite chose, prenons le code :$sql="SELECT t1.ID,t2.ID FROM t1,t2 WHERE t1.ID = 10 AND t1.ID = t2.ID";$res=mysql_q
mysql_fetch_object [ par blackvault ]
bonjour Mon souci est que le mysql_fetch_object semble ne pas comprendre l'argument que je lui donne et je ne comprends pas pourquoi... Warning: m
chat privé php [ par speedylol ]
bonjour ;-)Voilà le petit probléme , plus je recherche une solutions une petite aide pour la réalisation plutôt la finition de ce script.Voilà je vous
comment supprimer le paiement et confirmer chaque inscription manuellement [ par asmina22 ]
salutj'ai un script sur lequel je veux apporter des modifications:comment supprimer les options de payment et ouvrir les enregistrement sur la base de
unexpected { [ par biloutte33 ]
Bonjour tout le monde voici mon code : $reponse = mysql_query('SELECT * FROM `ibf_topics` Where Forum_id=49 OR Forum_id=50 ORDER BY start_date DES
Problème de $_POST [ par sagaff ]
Bonjours, j'ai un problème avec ce code, en effet lorsque qu'on clique sur le input de validation () rien ne se passe, j'ai page blanche, si je met u
faire 2 fetch_array sur une meme requete [ par gregou9 ]
j'aimerais pour une meme requete faire 2 fois : $aa=mysql_fetch_array($bb);je m'explik: - une fois pour l'utiliser pour l'affichage d'informations- pu
catalogue [ par gaston_gb ]
salut à tous, je ve realiser un catalogue ou je recupere les images et les references des produit depuis la base de données, je suis parvenu à affiche
script site [ par killeur ]
Bonjour voila je suis débutant en php et je suis en train de codé mon propre site mai voila je block sur un script voici le script
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|