我试图让表格中的每一行显示为调查的一部分。以下代码仅返回表中的第一行(因此用户只能看到一个问题)。我一遍又一遍,看不出我做错了什么。非常感谢任何意见。
谢谢!
function getQuestions ($dbc) <!--$dbc=database connection--> {
$query = "SELECT * FROM survey_questions" <!--survey_questions=table--> ;
$result = @mysqli_query ($dbc, $query);
while ($row = mysqli_fetch_array ($result, MYSQLI_ASSOC) ) {
$body = $row ['question_body'] <!--question_body=row in table--> ;
echo '
<div class="entry"> <!--user entry form-->
<h3 class="qTitle">'.$body.'</h3>
<form action="index.php" method="post">
<input type="text" name="answer" size="85" />
<input type="submit" value="Submit" name="submit" />
<input type="hidden" name="questionid" value="questionid" />
<input type="hidden" name="submitted" value="1" />
</form>
</div>
';
}
}
答案 0 :(得分:1)
首先,你不需要使用php回复这么多...
您必须使用//
或/* */
在PHP中发表评论,而不是<!---->
这是针对HTML进行评论
其次来到你的代码..
你为什么使用?
function getQuestions($dbc) //I dont know what this is doing here, why you are wrapping your code in a function???
你可以像这样写(用echo打印你的问题):
<?php
$result = mysqli_query($dbc, "SELECT * FROM survey_questions");
while ($row = mysqli_fetch_array ($result) ) {
?>
<div class="entry"> <!--user entry form-->
<h3 class="qTitle"><?php echo $row['whatever']; ?></h3>
<form action="index.php" method="post">
<input type="text" name="answer" size="85" />
<input type="submit" value="Submit" name="submit" />
<input type="hidden" name="questionid" value="questionid" />
<input type="hidden" name="submitted" value="1" />
</form>
</div>
<?php
}
?>
答案 1 :(得分:0)
结果现在是两种输入形式(一种改进),但仍然没有显示数据库中两行的文本。而不是行文本,我得到&gt;文本应该是的字符。这是更新的代码,适应@Mr的建议。外来:
function getQuestions($dbc) {
$result = mysqli_query($dbc, "SELECT * FROM survey_questions");
while ($row = mysqli_fetch_array ($result) ) {
echo '
<div class="entry">
<h3 class="qTitle">'. $row['survey_questions'].'></h3>
<form action="index.php" method="post">
<input type="text" name="answer" size="85" >
<input type="submit" value="Submit" name="submit" >
<input type="hidden" name="questionid" value="questionid" >
<input type="hidden" name="submitted" value="1" >
</form>
</div>
';
}
}