[PHP][SQL] Récupération de données

Récupération de données [PHP][SQL] - Programmation

Marsh Posté le 05-04-2001 à 10:54:06    

J'ai une requête codée comme suit:
 
$requete = mysql_query("SELECT url,sum(nbr_clic) FROM url_tbl GROUP BY url" );
$resultat = mysql_numrows($requete);
$i=0;
WHILE($resultat!=$i)  
{
   $url=mysql_result($requete,$i,"url" );
   print("$url" );
   i++;
}

 
J'arrive ainsi à afficher les urls. Oui, mais, comment afficher les nbr_clic ???
J'ai essayé sans succès :
$nbr_clic=mysql_result($requete,$i,"sum(nbr_clic)" );
 ou $nbr_clic=mysql_result($requete,$i,"2" );
Quelqu'un aurait une idée?
Merci!

Reply

Marsh Posté le 05-04-2001 à 10:54:06   

Reply

Marsh Posté le 05-04-2001 à 11:39:48    

EDWIGE a écrit a écrit :

J'ai une requête codée comme suit:
 
$requete = mysql_query("SELECT url,sum(nbr_clic) FROM url_tbl GROUP BY url" );
$resultat = mysql_numrows($requete);
$i=0;
WHILE($resultat!=$i)  
{
   $url=mysql_result($requete,$i,"url" );
   print("$url" );
   i++;
}

 
J'arrive ainsi à afficher les urls. Oui, mais, comment afficher les nbr_clic ???
J'ai essayé sans succès :
$nbr_clic=mysql_result($requete,$i,"sum(nbr_clic)" );
 ou $nbr_clic=mysql_result($requete,$i,"2" );
Quelqu'un aurait une idée?
Merci!




Je n'utilise pas cette instruction.
Essaye :
$url=mysql_result($requete,$i,"sum(nbr_clic" );
$url=mysql_result($requete,$i,2);
$url=mysql_result($requete,$i,"nbr_clic" );
 
Si aucun ne marche alors peut_être vaut_il mieux changer d'instructions (mysql_result n'est pas la plus rapide pour récupérer plusieurs valeurs par lignes).

Reply

Marsh Posté le 05-04-2001 à 11:46:14    

Moi j'utilise mysql_fetch_array, elle renvoie un tableau contenant les valeurs des colones selectionnées pour la lignes en cours
 
$result=mysql_query("SELECT url,sum(nbr_clic) as somme FROM url_tbl GROUP BY url" );
 
while ($tmp=mysql_fetch_array($result))
{
print(" url : " .$tmp["url"] ." , " .$tmp["somme"] ." clics" );
}
 
A noter que la fonction mysql_fetch_array renvoie false s'il n'y a plus d'enregistrements .

 

[edit]--Message édité par Lord II--[/edit]

Reply

Marsh Posté le 05-04-2001 à 11:48:57    

pareil j'utilise mysql_fetch_array qui me parait etre la plus conviviale

Reply

Marsh Posté le 05-04-2001 à 11:54:29    

Tu devrais plutot passer par le jeu d'instructions suivant :
 
$sql="SELECT url, sum(nbr_clic) as somme FROM url_tbl GROUP BY url";
$result=mysql_db_query($Base,$sql);

 
Le as somme te permet de renommer la colonne de maniere plus simple.
 
Apres tu fais une boucle pour recuperer chaque ligne avec :
$ligne=mysql_fetch_array($result)
Si il n'y a plus de lignes dans ta requete , mysql_fetch_array renvoie FALSE, ce qui permet de construire des boucles comme ceci :
while($ligne=mysql_fetch_array($result)) // attention, ici c'est bien un = (affectation) et pas un == (comparaison)
{
  // on triture les donnees d'une ligne
}

 
$ligne est un tableau qui contient des couples nom du champ, valeur
Par exemple :
 $url = $ligne["url"];
  $nbclic = $ligne["somme"];

 
Et voila !
 
Pour etre propre, quand tu n'as plus besoin de tes donnees, tu fait un mysql_free_result($result)
 
Bonne chance...

Reply

Marsh Posté le 05-04-2001 à 13:09:32    

philou_a7 a écrit a écrit :

Tu devrais plutot passer par le jeu d'instructions suivant :
 
[i]$sql="SELECT url, sum(nbr_clic) as somme FROM url_tbl GROUP BY url";




Personellement, quand j'avais fait mes essaies avec un "as" quelquechose, j'ai eu une erreur de la part de mysql.(faut que je réessayes pour voir).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed