这是我的代码。我是PHP和mySQL的新手。我很难搞清楚为什么我的fetch返回字符串“Array”。另外,有没有更好的方法来编写所有的echo语句?什么是正确的PHP编码规则?
while($row = mysql_fetch_array($question))
{
$answerID = $row['intQAID'];
$getAnswer = mysql_query("SELECT cBody FROM tblQA WHERE intResponseID = $answerID AND intPosterID = '17'");
$answerBody = mysql_fetch_array($getAnswer);
echo "<tr class='forum'>";
echo "<td class='forum'>" . $row['intQAID'] . "</td>";
echo "<td class='forum'>" . substr($row['cBody'], 0, 150) . "</td>";
echo "<td class='forum'>" . $row['cCategory'] . "</td>";
echo "<td class='forum'>" . $row['username'] . "</td>";
echo "<td class='forum'>" . $row['post_time'] . "</td>";
echo "</tr>";
echo "<tr class='forum'>";
echo "<td class='forum'></td>";
echo "<td class='forum'>$answerBody</td>";
echo "<td class='forum'></td>";
echo "<td class='forum'></td>";
echo "<td class='forum'></td>";
}
echo "</table></div></div>";
答案 0 :(得分:0)
它返回Array
,因为mysql_fetch_array
应该返回一个数组。这在the documentation和函数名称中指定!
因为它返回一个数组,即使该数组中只有一个项目,它仍将返回一个数组。
答案 1 :(得分:0)
你的语法错了。 mysql_fetch_array默认返回一个数组。如果你尝试echo一个数组PHP输出“数组”。命令PHP manual中有很多很好的例子。
heredoc格式非常适合回显大块。或者你可以结束你的php块并在需要时再次启动它(这可能是我在这种情况下会做的)。
<?php
// lots of PHP statements
?>
<table>
....
<td><?php echo $variable; ?></td>
....
<?php
// resume php
?>
有些人在代码中使用short tags来表示回声。我个人不会,虽然这是个人喜好的问题。新版本的PHP默认启用它们,但较旧的服务器安装可能不支持它们。
答案 2 :(得分:0)
试试这个
<?php
$query = mysql_query("SELECT cBody FROM tblQA WHERE intResponseID = $answerID AND intPosterID = '17'");
while($row = mysql_fetch_assoc($query)):
?>
<tr>
<td><?php echo $row['field_name']; ?></td>
<td><?php echo $row['field_name']; ?></td>
<td><?php echo $row['field_name']; ?></td>
<td><?php echo $row['field_name']; ?></td>
<!-- and so on -->
</tr>
<?php endwhile; ?>