我正在尝试按部分排序项目列表。部分编号和标题在一个表上,部分内容在另一个表上。在另一个while循环中使用while循环,我想获得节名称和数字。在第二个while循环中,我想获得部分内容。部分内容有一个名为section number的列,我将其传递给查询以获取相应部分的正确内容。我的问题是我只获得第一部分而第一部分只有一个内容。结果应该是第1部分下的5个内容和第2部分下的6个内容。我已经看到了使用数组的类似问题和解决方案,但我不能让它为我工作,因为我还是新手。
这是我的疑问:
$host = 'localhost';
$dbname = 'myDB';
$username = "root";
$password = "";
$pdo = new PDO('mysql:dbname=myDB;host=localhost', $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$i = 0;
$j= 0;
$cId = $_GET['cId'];
$z_content = $pdo->prepare("SELECT * FROM `cur_sections` WHERE `course_id` ='$cId'");
$z_content->execute();
while($obj = $z_content->fetch())
{
$section_no = $obj['sect_num'];
$section_name = $obj['section_name'];
$i++;
echo '<div style="padding-bottom: 10px;">
<a data-toggle="collapse" href="#demo'.$i.'" ><div
class="section_bck">
Section '.$section_no.': <b>'.$section_name.'</b>             <i class="fa fa-chevron-down" style="float:right;"></i></div></a>
</div>';
$p_content = $pdo->prepare("SELECT * FROM `course_material` WHERE `sect_num` ='$section_no' AND course_id='$cId'");
$p_content->execute();
while($obj2 = $p_content->fetch())
{
$j++;
$lecture_title = $obj2['lecture_title'];
$type_f = $obj2['file_type'];
echo '
<div id="demo'.$i.'" class ="collapse">
<div style="padding-bottom: 10px;">
<div class="section_bck_alt">
<i class="fa fa-'.$type_f.'"></i>  Lecture '.$j.': '.$lecture_title.'
</div>
</div>
</div>';
}
}
更新
我从页面网址获取$cId
的值为3
。
数据库结构
表1:
表2:
我刚刚发现了问题的原因。 Bootstrap崩溃以某种方式隐藏了我的查询结果的其余部分。即使我使用增量值来更改div ID。当我从循环中删除div折叠时,将返回所有结果,除了我无法再隐藏内容这一事实。
答案 0 :(得分:0)
您确定从正确的数据库中读取了吗?因为您定义变量但从不使用它们:
$host = 'localhost';
$dbname = 'myDB';
....
$pdo = new PDO('mysql:dbname=myDB;host=localhost', $username, $password);
并使用prepare但将params传递给执行:https://secure.php.net/manual/en/pdostatement.execute.php