php - 在faq常见问题解答,中,如何显示所有行?

  显示原文与译文双语对照的内容

这是一个常见问题解答页面。 页面只能在数据库中显示最后一行问题。 当我点击数据库中的所有问题时,我想要它折叠并显示答案。 我该怎么做? 谢谢非常感谢面板,我希望它显示为: !

问题

  • 回答

问题B

  • 答案B

问题C

  • 应答C

现在它只显示了:

问题C

  • 应答C

表结构:

# 名称类型排序规则空默认
1 Id Int无
2 个问题 Varchar Latin1_swedish_ci无
3 应答 Varchar Latin1_swedish_ci无
4 状态 Varchar 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";
 }

?> 

时间:

太多兄弟了。 好的,那么你应该写代码 below.Now 它应该工作。 :- )


<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";
 }

?> 

  1. 停止使用mysql_函数它们已经过时且不安全。 学习使用 PDO 。 以下是一个不错的参考: http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html

  2. 你的查询都是错误的。 不需要先从 table 中选择问题,然后再循环处理这些问题。 只需选择 * 或者选择 questionanswer 。 你可以一次选择多个列,而不仅仅是一个。

下面是一个示例代码:


<?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/>";
}
?>

...