php - 未从 SELECT 查询中获得预期结果

标签 php mysql

<分区>

我正在尝试从具有 16k 行的表中获取 10 个结果。

在这个表中有一个名为 views 的行,每次查看艺术家时都会获得 +1。 但我得到意想不到的结果只有顶级艺术家。 我为速度索引了 View 行。 我知道我必须循环它,但我不确定如何获取所有 10 行

我没有处理过循环或一次获取多行,需要帮助使用新的 mysqli 格式化它

example here with printout of array returned

// Get Top Viewed Artist
$TopViewedArtist = mysql_query("SELECT * FROM  `artists` ORDER BY  `artists`.`views` DESC LIMIT 10");
$TopViewedArtistInfo = mysql_fetch_assoc($TopViewedArtist);
$TopViewedArtist_TotalRows = mysql_num_rows($TopViewedArtist);
print_r($TopViewedArtistInfo); // the data returned from the query

这是以可读格式显示艺术家姓名结果的解决方案。

    $TopViewedArtists = mysql_query('SELECT * FROM `artists` ORDER BY `artists`.`views` DESC LIMIT 10');
    while (($TopArtist = mysql_fetch_assoc($TopViewedArtists)) !== FALSE) {
    //print_r($TopArtist);
    echo $TopArtist['artist']; echo "<br>";
    }

此代码可以为其他人更改。但需要更新到mysqli

最佳答案

mysql_query 返回一个 result 资源对象。把它想象成一个数组。读取该数组内容的唯一方法是遍历它。将 mysql_fetch_assoc 视为与数组的 each 相同:它返回下一行并递增内部指针。我想这就是你想要做的:

<?php
// Get Top Viewed Artist
$TopViewedArtists = mysql_query('SELECT * FROM `artists` ORDER BY `artists`.`views` DESC LIMIT 10');
while (($artist = mysql_fetch_assoc($TopViewedArtists)) !== FALSE) {
  print_r($artist);
}
?>

还要记住 mysql_fetch_assoc 返回一个包含多个值的数组。该数组应该包含您看到的所有内容;使用 $artist['artist'] 访问值(输出 Gwen Stefani)。

我可以建议您查看 mysqli 或 PDO 而不是基本的 mysql 函数吗?使用 mysql_ 函数的唯一原因是如果您受困于 PHP 4(不再受支持,因此没有人应该仍在使用它)或旧应用程序。这看起来两者都不是,而且您似乎还没有使用界面的经验,您真的应该研究更好的选择。

关于php - 未从 SELECT 查询中获得预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13300815/

相关文章:

php - 我想问一下关于多表的Mysql Select

php - mysql在表A中查找一系列记录,复制到表B

android - 如何将 Android 手机上的 SQLite 数据库与服务器上的 MySQL 数据库同步?

php - 使用 .htaccess 文件时(使用 SQL)登录时出现问题?

javascript - Jquery 自动完成,href 可点击

php - Linux : Library to write ID3v2 data and cover art

php - MySQL:加入三个表并连接分组结果

Mysql:从其他表获取值(左连接?)

php - 如何在 MySQL 中创建一个值自动增加的列

php - 如何在不知道传递的变量的情况下阅读发布请求?