PHP,在视图中显示mysql行


PHP, display mysql row in view

我在hph视图文件中显示下面的sql时遇到问题。

 $query = mysqli_query($con, "SELECT TF.tf_ID AS QuestID, TF.Question AS Question FROM QuizQuestions quest, addTF TF WHERE quest.QuestID = TF.tf_ID AND quest.QuizID ='".$quizID."'  AND quest.Type = 'tf'");
 $rows = array();
 while ($row = mysqli_fetch_assoc($query)) {
    $rows[] = $row;
 }
 echo json_encode($rows);

这是php视图中应该显示sql的部分。我知道这是错误的,但我不知道如何解决。欢迎任何帮助。

<?php foreach($json as $tf) :?> <?php echo $tf['Question']; ?> <div class="row-fluid"><div class="span8">
<div class="btn view" id="view" style="width: 98%">
<p class="text-left" style="margin: 0;float: left;">
<input type ="hidden" value="tf" name="type">
<input type="checkbox" id="questID" value="<?php echo $tf['tf_ID'];?>" name="questID" class="questID"  > <?php echo 'Question: '.$tf['Question']; ?> </input><br/>
<input type="hidden"> <?php echo 'Answer: '.$tf['Answer'] ; ?> </input><br/>
  </div> </div> </div> <?php endforeach; ?>

我使用过类似的代码,它们都有效。他们的问题是我不知道如何使用sql"AS"。如果这个问题曾经被问过,我会提前道歉。

没有名为mysqli_fetch_assoc()的方法。有mysql_fetch_assoc(),但没有mysqli_fetch_assoc。

你可以这样做来获得行:

$query = "SELECT TF.tf_ID AS QuestID, TF.Question AS Question FROM QuizQuestions quest, addTF TF WHERE quest.QuestID = TF.tf_ID AND quest.QuizID ='".$quizID."'  AND quest.Type = 'tf'";

$result = mysqli_query($con, $query);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);

如果您通过Ajax方法调用查询并将数据返回到JavaScript,则应该对其进行JSON编码。但是,如果您只是使用PHP打印行,那么没有理由对它们进行JSON编码。

要在PHP中迭代行,可以执行以下操作:

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo '<div>' . $row['foo']; . '</div><div>' . $row['bar']; . '</div>';
}

我不清楚你想做什么。

顶部的代码创建一些JSON,这些JSON将被发送到浏览器。大概是响应AJAX或jQuery请求。一旦JSON在浏览器上,就可以使用Java Script将其添加到当前页面。

第二个代码片段是PHP,它总是在服务器上执行,但您的数据在客户端上???

我本以为会有更像。。。

$rows = mysqli_fetch_assoc($query)
echo "<div>'n";
foreach($rows as $row) {
   // generate one row getting values as {$row['fieldname']} 
}
echo "</div>";

此外,如果你不能生成100%有效且无错误的html,你不仅需要在所有当前浏览器上进行测试,而且如果新浏览器在下一版本中错误显示,你也不能抱怨。