这是一个FAQ页面。该页面只能在数据库中显示与其答案相关的问题的最后一行。我希望它折叠并在我单击数据库中的所有问题时显示有关其问题的答案。我应该怎么做?谢谢!感谢很多!面板。我希望它显示为:
问题 A
- 答案 A
问题 B
- 答案 B
问题 C
- 答案 C
现在它只显示这个:
问题 C
- 答案 C
表结构:
# 名称类型排序规则空默认值
1 id int no none
2 问题 瓦尔查尔 Latin1_swedish_ci 没有 无
3 回答瓦尔查尔Latin1_swedish_ci没有
4 状态 瓦尔查尔 Latin1_swedish_ci 无
5 Date_added日期 否 无
下面是我的代码:
<h1>FAQ</h1>
<?php
$result = mysql_query("SELECT * FROM faq ORDER BY id ASC;");
if($result >= 1 ){
$i=1;
while ($row = mysql_fetch_array($result))
{ $id = $row["id"];
?>
<?php
$i++; }
}
?>
<?php
$queryquestion = mysql_query("SELECT question FROM faq where status='Enabled' AND id='$id' ORDER BY id ASC;")or die(mysql_error());
$data = mysql_fetch_assoc($queryquestion);
$question = $data['question'];
$rows = mysql_num_rows($queryquestion);
if($rows != 0){
echo '
<hr class="colorgraph">
<div class="panel-group" id="accordion">
';
$i = 0; $j = 0;
while($i < $rows)
{
$queryanswer = mysql_query("SELECT answer FROM faq WHERE id='$id' AND question='$question'") or die(mysql_error());
$data = mysql_fetch_assoc($queryanswer);
$answer = $data['answer'];
echo
'
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title"><a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapse'.$i.'">
'.$question.'</h4>
</a></div>
<div id="collapse'.$i.'" class="panel-collapse collapse">
<div class="panel-body">'.$answer.'</div>
</div>
</div>
';
$i++;
}
echo'
</div>
';
}else{
echo "No Questions Found";
}
?>
兄弟太多了.. 好吧,那么你应该写下面的代码。现在它应该可以工作兄弟..:-)
<h1>FAQ</h1>
<?php
$result = mysql_query("SELECT * FROM faq ORDER BY id ASC;");
if($result >= 1 ){
$i=1;
while ($row = mysql_fetch_array($result))
{ $id = $row["id"];
//echo $id;
?>
<?php
$i++; }
}
?>
<?php
$queryquestion = mysql_query("SELECT * FROM faq where status='Enabled' ORDER BY id ASC;")or die(mysql_error());
$rows = mysql_num_rows($queryquestion);
if($rows != 0){
echo '
<hr class="colorgraph">
<div class="panel-group" id="accordion">
';
$i = 0; $j = 0;
while($data = mysql_fetch_assoc($queryquestion))
{
echo
'
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title"><a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapse'.$i.'">
'.$data['question'].'</h4>
</a></div>
<div id="collapse'.$i.'" class="panel-collapse collapse">
<div class="panel-body">'.$data['answer'].'</div>
</div>
</div>
';
$i++;
}
echo'
</div>
';
}else{
echo "No Questions Found";
}
?>
-
停止使用mysql_函数。它们已弃用且不安全。学习改用PDO。这里有一个很好的参考: http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html
-
您执行的查询都错了。没有必要先从表中选择问题,然后循环回答这些问题。只需选择 * 或选择
question
,answer
...您可以一次选择多个列,而不仅仅是一个列。
下面是一个示例代码:
<?php
$hostname = 'localhost';
$username = 'root';
$password = '';
$dbh = new PDO("mysql:host=$hostname;dbname=test", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$sql = $dbh->prepare("SELECT * FROM `faq` WHERE `Status`='Enabled' ORDER BY id");
$sql->execute();
$result = $sql->fetchAll();
$i=0;
foreach ($result as $row) {
$i++;
echo "<h2>Question $i</h2>";
echo "<p>".$row['Question']."</p>";
echo "Answer: ".$row['Answer'];
echo "<br /><br />";
}
?>