Récupération de données [PHP][SQL] - Programmation
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).
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]
Marsh Posté le 05-04-2001 à 11:48:57
pareil j'utilise mysql_fetch_array qui me parait etre la plus conviviale
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...
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).
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!