2012-03-29 47 views
0

這是我的代碼。我對PHP和mySQL相當陌生。我很難弄清楚爲什麼我的抓取返回字符串「數組」。另外,是否有更好的方法來編寫所有的回聲聲明?什麼是適當的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

的$ answerBody正在返回「數組」 – BigMike 2012-03-29 05:54:37

回答

0

它返回Array因爲mysql_fetch_array應該返回數組。這在the documentation中指定,並且該函數的名稱!

因爲它返回一個數組,所以即使該數組只有一個項目,它仍然會返回一個數組。

+0

它仍然會返回「陣列」當我使用和mysql_fetch_row以及 – BigMike 2012-03-29 05:59:02

+0

再次與[文件](http://uk3.php.net/mysql_fetch_row):「返回與獲取的行相對應的數字數組」 – Quentin 2012-03-29 06:02:12

+0

從數組*中獲取您想要*的數據,而不是嘗試從數據庫中獲取純數據字符串(因爲您不會獲得純字符串從數據庫返回)。 – Quentin 2012-03-29 06:02:38

0

您的語法錯誤。 mysql_fetch_array默認返回一個數組。如果你嘗試echo數組PHP輸出「Array」。命令中的PHP manual有很多很好的示例。

heredoc格式非常適合回顯大塊。或者,你可以結束你的PHP塊,並在需要時重新啓動它(這可能是我在這種情況下會做的)。

<?php 
    // lots of PHP statements 
?> 
    <table> 
    .... 
    <td><?php echo $variable; ?></td> 
    .... 
<?php 
    // resume php 
?> 

有些人在他們的回聲代碼中使用short tags。我個人不喜歡,雖然這是個人喜好的問題。新版本的PHP在默認情況下啓用了它們,但較早的服務器安裝可能不支持它們。

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