gpt4 book ai didi

PHP while 循环中的第二个 while 循环仅运行一次

转载 作者:行者123 更新时间:2023-11-29 20:27:09 25 4
gpt4 key购买 nike

需要一些关于我的 php/mysql 编码的专家帮助。我期望 while 循环检查每个 block ,并通过使用第二个 while 循环来回显 1 行中同一 block 中的所有用户来完成它。我设法显示它,但它不会分别显示来自其他 block 的其他用户。

这是到目前为止我的代码,不过我对 php 还很陌生。

<html>
<head>
</head>
<body>
<table border='1'>
<th>Block</th>
<th>company</th>
<th>Username</th>
<th>datetime</th>
<?php
require('db.php');


$sql = "
SELECT block_directories.block, event_details.username, event_details.datetime, event_details.eventDate, companies.company, event_details.tag
FROM block_directories INNER JOIN event_details
ON block_directories.block_id = event_details.tag
INNER JOIN companies
ON event_details.company=companies.company_id"
;
$records=mysql_query($sql);

$sqlblock = "
SELECT * FROM block_directories"
;
$blockrecords=mysql_query($sqlblock);

//while loop to echo all blocks into table ina column
while($blkrecords=mysql_fetch_assoc($blockrecords)){
echo "<tr>";
echo "<td>{$blkrecords['block']}</td>";

//while loop to echo all users within the same block
while($users=mysql_fetch_assoc($records)){
if($users['block']==$blkrecords['block']){
echo "<td>{$users['company']}</td>";
echo "<td>{$users['username']}</td>";
echo "<td>{$users['datetime']}</td>";
}
}
echo "</tr>";
}
?>
</table>
</body>

Output Display of the code

最佳答案

这是因为 mysql_fetch_assoc() 在指针到达结果集末尾后不会返回行。

您需要通过添加以下行将其重新指向结果集的第一个。

mysql_data_seek($records, 0);

所以你的循环代码会是这样的,

while($blkrecords=mysql_fetch_assoc($blockrecords)){    
echo "<tr>";
echo "<td>{$blkrecords['block']}</td>";

//while loop to echo all users within the same block
while($users=mysql_fetch_assoc($records)){
if($users['block']==$blkrecords['block']){
echo "<td>{$users['company']}</td>";
echo "<td>{$users['username']}</td>";
echo "<td>{$users['datetime']}</td>";
}
}
mysql_data_seek($records, 0);
echo "</tr>";
}

mysql_* extensions were deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used.

关于PHP while 循环中的第二个 while 循环仅运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39245356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com