Php 我的代码只显示第一个结果,另一个结果为空

Php 我的代码只显示第一个结果,另一个结果为空,php,mysql,sql,loops,Php,Mysql,Sql,Loops,我有个问题 我有一个名为event attents的表,我们将它们记录到ID为的表中。事件ID和用户ID 当我想列出参加活动的人数时,我需要将用户从用户表中带出来,并带上姓名、电话和电子邮件 但是当我写代码时,ID是result true。但是,当我将第二个SQL放入循环时,代码只会给我带来第一条记录,而另一条记录为null 有人能帮我吗 我是PHP初学者,所以我有错误:( //启动表连接// $result_event_attents=mysql_query(“选择*自事件_attents,其

我有个问题

我有一个名为event attents的表,我们将它们记录到ID为的表中。事件ID和用户ID

当我想列出参加活动的人数时,我需要将用户从用户表中带出来,并带上姓名、电话和电子邮件

但是当我写代码时,ID是result true。但是,当我将第二个SQL放入循环时,代码只会给我带来第一条记录,而另一条记录为null

有人能帮我吗

我是PHP初学者,所以我有错误:(

//启动表连接//
$result_event_attents=mysql_query(“选择*自事件_attents,其中课程id=”””。$val_selected_event_id。”“按IDORDER排序课程_attents DESC”);
$total_results_event_attents=mysql_num_rows($result_event_attents);
$total_pages_event_attents=ceil($total_results_event_attents/$per_pages);
//端表连接//
//分页开始//
//检查URL中是否设置了“page”变量(例如:view paginated.php?page=1)
如果(isset($\u GET['page'])和&是数字($\u GET['page']))
{
$show_page=$_GET['page'];
//确保$show\u页面值有效

如果($show_page>0&&$show_page作为序言,我强烈建议您使用与当前使用的
mysql
函数相反的函数

当你在循环的每一次迭代中查询数据库时,你似乎做得有点低效。考虑把你所有的数据库结果转换成多维数组(<代码> MySqLyFixChygALL 将是一个很好的开始,如果你决定使用<代码> MySqLI< /COD>)然后循环该数组的第一个维度并执行任何验证


也可以考虑使用SQL连接来合并数据。代码不太清楚,所以我不能完全肯定这些选项中的任何一个都是有效的(也就是为什么我不愿意提供示例)。.

对于查询,您最好从一开始就学习如何有效地使用数据库。您遇到的是一个根本没有效率的查询循环

这就是您现在拥有的:

SELECT * 
FROM event_attends 
where course_id='$val_selected_event_id'  
ORDER BY idcourse_attends DESC
;
/* inefficiently this is repeated for each row from the first query */
SELECT * 
FROM users 
where userID = '$user_id'
;
使用此单个查询可以获得相同的结果:

SELECT ca.* , u.*
FROM event_attends ca
INNER JOIN users u ON ca.user_id = u.user_id
where ca.course_id='$val_selected_event_id'  
ORDER BY ca.idcourse_attends DESC
小心使用
选择*
;不应在生产代码中使用它。您应该列出实际需要的字段,这样可以最大限度地减少收集数据并将数据传输到应用程序的工作量


还要注意使用了
ca
u
,它们是
表别名
为您引用的每个字段添加前缀,以便dbms知道引用的是哪个字段。

PHP的MySQL api不推荐使用,因此采用MySQLi或PDO是好的practice@AbdulrahmanEl Halab;刚刚意识到我错过了加入条件(非常重要!)在ca.user\u id=u.user\u id上
SELECT ca.* , u.*
FROM event_attends ca
INNER JOIN users u ON ca.user_id = u.user_id
where ca.course_id='$val_selected_event_id'  
ORDER BY ca.idcourse_attends DESC