2011-05-18 19 views
0

代碼,解釋後:PHP WHILE循環神祕不是第一次產生任何輸出

$result = mysql_query("INSERT INTO messages (...) VALUES (...)") or die(mysql_error()); 
      $rowID = mysql_insert_id();   
      if($result) {         
       $query = mysql_query(" 
       SELECT ... LIMIT 1"); 

       while ($row = mysql_fetch_array($query)) : 
        $message_id = stripslashes($row["m_id"]); 
        $message_postedby = stripslashes($row["u_name"]); 
        $message_text = stripslashes($row["m_text"]); 
        $date = date('F d, Y \a\t g:iA', strtotime($row["m_date"])); 
        ?> 
       <div class="wall_message" id="<?= $message_id ?>"> 
        <div class="author"><?= $message_postedby ?></div> 
        <div class="message"><?= $message_text ?></div> 
        <div class="date"><?= $date ?></div> 
       </div> 
       <?php 
       endwhile; 
       } ?> 

我在做什麼:

  1. 插入新行到數據庫中插入的行
  2. 商店ID變量$ rowID
  3. 如果插入成功,則查詢數據庫以從其他表中檢索該行以及任何其他相關信息
  4. 從變量行
  5. 打印
  6. 存儲值包含信息

所有這一切都正在從一個jQuery函數調用,所以我希望我所有的HTML將被返回的div但WHILE循環內沒有任何內容被返回。我可以在它之前和之後回顯文本,並且我看到它很好,但循環內沒有任何內容會打印出來,而且我看不到我的錯誤。沒有得到任何錯誤。

謝謝。

+1

你在1號線 – 2011-05-18 03:21:08

回答

6

mysql_fetch_array()不接受查詢,它需要一個資源(結果)。

$result = mysql_query($query); 
while ($row = mysql_fetch_assoc($result)) { 

還沒有價值,如果你只從結果訪問關聯鍵,你應該使用mysql_fetch_assoc()代替。

+0

在他的代碼中的SQL後缺少一個引號,$查詢是指$結果,因爲它是不正確的命名:) – 2011-05-18 03:53:57

+0

他使用$查詢mysql_fetch_array($查詢)=請求mysql_query(「」 ),所以$ query是一個結果資源,而不是查詢字符串。 – 2011-05-18 04:38:21

相關問題