gpt4 book ai didi

php - 内部 while 循环不工作

转载 作者:行者123 更新时间:2023-11-29 14:27:21 30 4
gpt4 key购买 nike

这是我项目网页中的代码片段。这里我想显示用户选择的类别,然后想显示属于该类别的主题。在那里,用户可以拥有多个类别,这没有问题。我可以在第一个 while 循环中打印所有这些类别。问题是当我尝试打印主题时,结果只显示一行,但每个类别中有更多主题。谁能告诉我发生了什么事吗?

这是我的代码。
注意:两个查询都工作正常。我尝试使用 mysql 客户端程序。

<?php

require_once ('../../includes/config.inc.php');
require_once( MYSQL1 );

$q = "SELECT institute_category.category_id, category_name
FROM institute_category
INNER JOIN category ON institute_category.category_id = category.category_id
WHERE institute_category.institute_id = $instituteId";

$r = mysqli_query( $dbc, $q);

while ( $row = mysqli_fetch_array ( $r, MYSQLI_ASSOC) ) {

$categoryId = $row['category_id'];
$category = $row['category_name'];

echo '<fieldset class="alt">
<legend><span>Category : <em style="color: red;">' . $category .
'</em></span></legend>';

$qy = "SELECT category_subject.category_id, category_subject.subject_id, subjects
FROM category_subject
INNER JOIN category ON category_subject.category_id = category.category_id
INNER JOIN subject ON category_subject.subject_id = subject.subject_id
WHERE category_subject.category_id = $categoryId";

$result = mysqli_query( $dbc, $qy);

$c = $i = 0;

echo '<table class="form_table" ><tr>';

while($row = mysqli_fetch_array( $result, MYSQLI_ASSOC )){
// if remainder is zero after 2 iterations (for 2 columns) and when $c > 0, end row and start a new row:
if( ($c % 2) == 0 && $c != 0){
echo "</tr><tr>";
}

echo '<td width="50%"><input type="checkbox" name="subject[]" value="' .
$row['category_id'] . ":" . $category . ":" . $row['subject_id'] .
":". $row['subjects'] . '" />&nbsp;&nbsp;' . $row['subjects'] .
'</td>' . "\n";

$c++;

} // while..

// in case you need to fill a last empty cell:
if ( ( $i % 2 ) != 0 ){
// str_repeat() will be handy when you want more than 2 columns
echo str_repeat( "<td>&nbsp;</td>", ( 2 - ( $i % 2 ) ) );
}
echo "</tr></table>";
}
echo '</fieldset>';
?>

最佳答案

将我的评论变成答案:

只需查看您的代码一秒钟,我就可以看到您在外循环和内循环中都使用了 $row 变量。尝试将外部循环的 $row 变量重命名为 $outerRow,将内部循环的 $row 变量重命名为 $innerRow。这可能是第一个问题。这也可能适用于其他变量,例如 $result 变量。

关于php - 内部 while 循环不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680530/

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