mysql_fetch_object VS mysql_fetch_row
Hors ligneElidris Le 03/01/2007 à 14:48 Profil de Elidris Configuration de Elidris

Encéphalo plat !
Bonjour, c'est encore moi pour une petite question débile^^

J'ai un bout de code qui me sert à aller recuperer tous les auteurs ainsi que le nombre de citation de cette auteur dans une table Sql et à les inserer dans un menu déroulant.

Sauriez vous me dire laquelle de ces 2 requêtes est la meilleure ( question poids pour le serveur !) :



<?php
$requete 
= mysql_query("SELECT auteur FROM proverbe");
     while ($ligne = mysql_fetch_object($requete)) 
           
{
              $aut = $ligne->auteur;
              $page="index.php?page=modules/page_auteur&amp;aut=$aut";
              $affiches=ucfirst($aut);
              $categories_aut["$affiches"]++;
            }
     
ksort
($categories_aut);
echo '<form action="index.php?page=modules/page_resultat_auteur" target="_parent" method="post">
<div class="cadre_ghaut"><p>Recherche</p></div>
<div class="cadre_gbas"><p><br />
<select name="cat_auteur" class="formulaire" size="15" style="width:150px; background-color:#d4d9f8;">'
;

for (reset($categories_aut); $aut = key($categories_aut); next($categories_aut)) { 

echo'<option>'.$aut.' ('.$categories_aut[$aut].')</option>'; }
          
echo 
'</select><br /><br />
<input type="submit" value=" &nbsp;&nbsp;&nbsp;&nbsp;Valider" class="boutton_valide" />
</p></div></form>'
;
?>


ou



<?php
$requete 
= mysql_query("SELECT auteur FROM proverbe");
     while ($ligne = mysql_fetch_row($requete)) 
           
{
              $aut = $ligne['0'];
              $page="index.php?page=modules/page_auteur&amp;aut=$aut";
              $affiches=ucfirst($aut);
              $categories_aut["$affiches"]++;
            }
     
ksort
($categories_aut);

echo '<form action="index.php?page=modules/page_resultat_auteur" target="_parent" method="post">
<div class="cadre_ghaut"><p>Recherche</p></div>
<div class="cadre_gbas"><p><br />
<select name="cat_auteur" class="formulaire" size="15" style="width:150px; background-color:#d4d9f8;">'
;

for (reset($categories_aut); $aut = key($categories_aut); next($categories_aut)) { 

echo'<option>'.$aut.' ('.$categories_aut[$aut].')</option>'; }
          
echo 
'</select><br /><br />
<input type="submit" value=" &nbsp;&nbsp;&nbsp;&nbsp;Valider" class="boutton_valide" />
</p></div></form>'
;
?>


Voilà, et sinon existe t'il une façon de faire, meilleure que celles-ci ?

merci...
--
"Les experts auront beau se mettrent tous d'accord, il peuvent se tromper."
Hors ligneAnthony Le 03/01/2007 à 19:20 Profil de Anthony Configuration de Anthony

Admin
Salut,

Le fetch_row est le plus rapide, mais quand tu prends un tableau numérique, au lieu de faire ça :  $aut = $ligne['0']; fais ça :  $aut = $ligne[0];

la seconde solution est plus rapide, car 0 est traité comme un chiffre et non comme une chaîne de caractères, ce qui est plus rapide.

  $categories_aut["$affiches"]++; c'est pas indispensable, mets plutôt   $categories_aut[$affiches]++;

Sinon perso j'aurais fait ça :


<form action="index.php?page=modules/page_resultat_auteur" target="_parent" method="post">
<div class="cadre_ghaut"><p>Recherche</p></div>
<div class="cadre_gbas">
<p><br />
<select name="cat_auteur" class="formulaire" size="15" style="width:150px; background-color:#d4d9f8;">


<?php 
$requete 
mysql_query('SELECT auteur FROM proverbe');
mysql_close(); 

while (
$ligne mysql_fetch_row($requete))  

        $page='index.php?page=modules/page_auteur&amp;aut='.$ligne[0];
        $categories_aut[ucfirst($ligne[0])]++; 

      
ksort
($categories_aut); 

foreach(
$categories_aut AS $cle => $valeur)
{
     echo'<option>'.$cle.' ('.$valeur.')</option>';
 }
?>

</select><br /><br />
<input type="submit" value=" &nbsp;&nbsp;&nbsp;&nbsp;Valider" class="boutton_valide" />
</p></div></form>
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels