2010-01-22 8 views
-4
$result = mysql_query("SELECT avg(r.rate) FROM rate r where ImgName='1'"); 

ce php ne fonctionne pas.Php dans MYSQL aggraver la fonction ne fonctionne pas

A l'origine mon code est

<?php 
$con = mysql_connect("localhost","root","sql"); 

if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("photogallery", $con); 

$result = mysql_query("SELECT avg(r.rate) FROM rate r "); 
echo "<table border='0' cellspacing='5'>"; 
echo "<th> Average Rating </td>"; 

while($row = mysql_fetch_array($result)) 
{ 
    echo "<tr>"; 
    echo "<td> " . $row['rate'] . "</td>"; 
    echo "</tr>"; 
} 

echo "</table>"; 

mysql_close($con); 
?> 

ci-dessus ne montre aucune eteint.

mais de modifier le code, c'est-à-dire son fonctionnement.

$ resultat = requête_sysql ("SELECT r.rate FROM rate r");

mais je veux fonction d'agrégation

merci à l'avance

+2

Prenez-vous soin de nous fournir des erreurs? –

+3

Attendez pendant que je mets mon niveau 5 chapeau de divination du journal des erreurs –

+0

S'il vous plaît modifier votre message et collez le code PHP comme un code. C'est totalement illisible en ce moment. PS. Configurer error_reporting à 'E_ALL' et nous montrer le résultat de' mysql_error() ' – Crozin

Répondre

0

Votre requête est produire un scalaire plutôt que d'un ensemble f rangs. Si vous voulez obtenir le taux moyen par article, alors vous devriez faire quelque chose comme:

SELECT avg(r.rate) FROM rate r GROUP BY ItemIdColumn 

Et oui, si vous voulez récupérer la valeur par nom de colonne, vous devez utiliser un alias, comme Knittl mentionné.

2

vous pouvez utiliser un alias:

SELECT avg(r.rate) AS rate_average 
    FROM rate r 
WHERE ImgName='1' 

puis sortie:

echo "<td> " . $row['rate_average'] . "</td>"; 
+0

merci cela fonctionne –

+0

Eh bien ... il ne ** pas ** doit utiliser un alias. La valeur est disponible sous $ row ['avg (r.rate)'] 'mais l'utilisation de l'alias est la seule façon normale de récupérer cette valeur. Je pense que c'est faux de dire "il faut" alors que ce n'est pas le cas. ;) – Crozin

+0

@cozin mieux? ;) – knittl

Questions connexes