查询获取返回'Array'

时间:2012-03-29 05:52:38

标签: php

这是我的代码。我是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>";

3 个答案:

答案 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; ?>