Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从SELECT查询中获取预期结果_Php_Mysql - Fatal编程技术网

Php 无法从SELECT查询中获取预期结果

Php 无法从SELECT查询中获取预期结果,php,mysql,Php,Mysql,我试图从一个有16k行的表中获取10个结果 此表中的With是一个名为views的行,每次查看艺术家时,该行的值为+1。 但我得到了意想不到的结果,只有顶尖的艺术家。 我为视图行编制了速度索引。 我知道我必须循环它,但我不确定如何获得所有10行 我没有处理循环或一次获取多行的问题,需要使用新的mysqli帮助格式化它 这是以可读格式显示艺术家名称结果的解决方案 $TopViewedArtists = mysql_query('SELECT * FROM `artists` ORDER

我试图从一个有16k行的表中获取10个结果

此表中的With是一个名为views的行,每次查看艺术家时,该行的值为+1。 但我得到了意想不到的结果,只有顶尖的艺术家。 我为视图行编制了速度索引。 我知道我必须循环它,但我不确定如何获得所有10行

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

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

    $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>";
    }
$TopViewedArtists=mysql\u query('SELECT*FROM'artists'ORDER BY'artists`.'views'DESC LIMIT 10');
while($TopArtist=mysql\u fetch\u assoc($TopViewedArtists))!==FALSE){
//印刷(顶级艺术家);
echo$TopArtist['artist'];echo“
”; }

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

mysql\u查询
返回一个
结果
资源对象。将其视为一个数组。读取该数组内容的唯一方法是遍历它。将mysql_fetch_assoc与数组的每个一样:它返回下一行并递增内部指针。我想这就是你想要做的:

<?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\u fetch\u assoc
返回一个包含多个值的数组。数组应该包含您看到的所有内容;使用
$artist['artist']
访问值(输出
Gwen Stefani


我可以建议您研究mysqli或PDO而不是基本的mysql函数吗?使用
mysql\uuu
函数的唯一原因是,如果您一直使用PHP4(不再支持,因此没有人应该仍然使用它)或旧的应用程序。这两种情况看起来都不一样,而且您似乎还没有使用该接口的经验,因此您确实应该研究更好的选项。

mysql\u query
返回一个
结果
资源对象。将其视为一个数组。读取该数组内容的唯一方法是遍历它。将mysql_fetch_assoc与数组的每个一样:它返回下一行并递增内部指针。我想这就是你想要做的:

<?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\u fetch\u assoc
返回一个包含多个值的数组。数组应该包含您看到的所有内容;使用
$artist['artist']
访问值(输出
Gwen Stefani


我可以建议您研究mysqli或PDO而不是基本的mysql函数吗?使用
mysql\uuu
函数的唯一原因是,如果您一直使用PHP4(不再支持,因此没有人应该仍然使用它)或旧的应用程序。这两种情况看起来都不一样,而且您似乎还没有使用该界面的经验,因此您真的应该研究更好的选项。

基本上,您希望这样:

$q=mysql_query("SELECT * FROM  `artists` ORDER BY  `artists`.`views` DESC LIMIT 10");
while($r=mysql_fetch_array($q)){//this will loop 10 times presuming there are at least 10 entries in your table
  //use $r here, it represents a single row
  print_r($r);
}

正如其他人所说,您应该使用mysqli或pdo,而不是使用
mysql\uu
函数,基本上,您需要这样的功能:

$q=mysql_query("SELECT * FROM  `artists` ORDER BY  `artists`.`views` DESC LIMIT 10");
while($r=mysql_fetch_array($q)){//this will loop 10 times presuming there are at least 10 entries in your table
  //use $r here, it represents a single row
  print_r($r);
}

正如其他人所说,您应该使用mysqli或pdo,而不是
mysql\u
函数

那么,
mysql\u fetch\u assoc
给您一行。你读过PHP MySQL文档了吗?它举例说明了如何使用这些东西。是的。。。在这个问题上,信息的缺乏令人难以置信。预期的结果是什么?您的模式是什么样子的?“It's break”并不能真正解决问题。重读时,您可能希望
$TopViewedArtistInfo
包含所有10行?这不是函数的工作方式;您需要循环它来获取查询中的所有内容,或者您可以使用一次获取所有10行;考虑到您将切换到PDO,这使一切变得更简单。那么,
mysql\u fetch\u assoc
将为您提供一行。你读过PHP MySQL文档了吗?它举例说明了如何使用这些东西。是的。。。在这个问题上,信息的缺乏令人难以置信。预期的结果是什么?您的模式是什么样子的?“It's break”并不能真正解决问题。重读时,您可能希望
$TopViewedArtistInfo
包含所有10行?这不是函数的工作方式;您需要循环它来获取查询中的所有内容,或者您可以使用一次获取所有10行;考虑到您要切换到PDO,这使一切变得更简单。我如何让它以列表格式重复结果,只让结果中的艺术家
echo'
    ;而(…){echo“
  • $artist[艺术家]
  • ”;};回声“
如何使其以列表格式重复结果,仅由结果中的艺术家
echo'
    ”;而(…){echo“
  • $artist[艺术家]
  • ”;};回声“