Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 While循环不会显示多行_Php_Mysql - Fatal编程技术网

PHP While循环不会显示多行

PHP While循环不会显示多行,php,mysql,Php,Mysql,下面的脚本将只打印sql数据库中的一行。我想显示多个带有名字和姓氏的行。这是一个朋友列表。代码如下 谢谢,, 红色 我认为问题在于下面语句中的变量“$res” while($friends = mysqli_fetch_array($res)){ $q = "SELECT * FROM `clientusers` WHERE `id` = '{$friends['id2']}' ORDER BY `id` ASC"; $res = mysqli_query($db, $q); 正在

下面的脚本将只打印sql数据库中的一行。我想显示多个带有名字和姓氏的行。这是一个朋友列表。代码如下

谢谢,, 红色


我认为问题在于下面语句中的变量“$res”

while($friends = mysqli_fetch_array($res)){
 $q = "SELECT * FROM `clientusers` WHERE `id` = '{$friends['id2']}' ORDER BY `id` ASC";
    $res = mysqli_query($db, $q);
正在被下面的语句覆盖

while($friends = mysqli_fetch_array($res)){
 $q = "SELECT * FROM `clientusers` WHERE `id` = '{$friends['id2']}' ORDER BY `id` ASC";
    $res = mysqli_query($db, $q);
因此,当外部while循环返回以获取第二条记录时,它将显示一个新结果。因此,尝试命名资源变量$res1和$res2以避免混淆

所以代码看起来像

$res1 = mysqli_query($db, $q) or die("<h1>4:)Fatal Error! Please contact administration.</h1>".mysql_error());
while($friends = mysqli_fetch_array($res1)){
....
....
....
$res2 = mysqli_query($db, $q);
while($list = mysqli_fetch_array($res2)){?>
$res1=mysqli_query($db,$q)或die(“4:)致命错误!请与管理部门联系。“.mysql_Error());
while($friends=mysqli\u fetch\u数组($res1)){
....
....
....
$res2=mysqli_查询($db,$q);
而($list=mysqli\u fetch\u数组($res2)){?>

您从数据库收集数据的方式似乎是正确的。您能在phpMyAdmin中运行该查询并查看是否得到多个或单个结果吗?好的,给我一分钟时间在phpMyAdmin中运行它。我会发布结果。首先,你应该在查询中对条件进行分组,如果不分组,你可能会得到不想要的结果。使用括号对它们进行分组,因为你的条件中既有And和OR,也有And和OR。然后你应该学习如何利用准备好的语句。还可以将一些mysql与mys混合使用qli,这就像苹果和桔子一样-非常不同,而且与其根据另一个查询的结果进行查询,不如使用JOIN代替。在第一次查询后转到行,
echo$q;
,然后将该文本复制并粘贴到PHPMyAdmin中。必要时注释掉脚本的其余部分。