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!