2009-11-06 8 views
4

J'ai une base de données MySQL où les utilisateurs peuvent lister les livres qu'ils ont lus, veulent lire, etc. J'essaie d'écrire une requête pour trouver le livre le plus commun que les utilisateurs ont listé.MySQL comptant la plus grande valeur

Ma requête en cours est:

$result = mysql_query("SELECT title, COUNT(title) AS counttitle FROM books GROUP BY title ORDER BY counttitle DESC LIMIT 1"); 
      echo "<p>The most popular book listed by members is $result</p>"; 

Cela semble (pour moi) d'être la façon logique de le faire, et je ne vois rien de mal avec la syntaxe, mais le résultat je deviens est "Le livre le plus populaire répertorié par les membres est l'ID de ressource # 32"

Quelqu'un at-il une idée d'où je vais mal?

Répondre

5

Je pense que vous manquez ceci:

$row = mysql_fetch_assoc($result) 

Le $result est pas vraiment la réponse, il est une ressource de résultat contenant la ligne qui a la réponse.

1

cet exemple devrait aider
mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

printf("ID: %s Name: %s", $row[0], $row[1]);

}
d'ici http://us2.php.net/mysql_fetch_array

4

Votre requête est bien, vous devez lire sur votre PHP.

result = mysql_query("SELECT title, COUNT(title) AS counttitle FROM books GROUP BY title ORDER BY counttitle DESC LIMIT 1"); 
$row = mysql_fetch_assoc($result); 
echo "<p>The most popular book listed by members is " . row['title'] . "</p>"; 

Docs: http://us3.php.net/mysql_query

Valeurs de retour

Pour SELECT, SHOW, DESCRIBE, EXPLAIN et d'autres déclarations de retour ResultSet, mysql_query() retourne une ressource en cas de succès, ou FALSE en cas d'erreur. Pour les autres types d'instructions SQL, INSERT, UPDATE, DELETE, DROP, etc., mysql_query() renvoie TRUE en cas de succès ou FALSE si une erreur survient.

La ressource de résultat renvoyée doit être transmise à mysql_fetch_array() et à d'autres fonctions pour traiter les tables de résultats, afin d'accéder aux données renvoyées.

+1

Légère erreur dans la syntaxe là .. elle devrait être $ row ['title'] dans la sortie d'écho. – Paul

Questions connexes