PHP WHILE循环神秘地不产生任何输出

时间:2011-05-18 03:18:05

标签: php mysql loops while-loop

代码优先,解释之后:

$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. 在变量$ rowID
  3. 中存储插入行的ID
  4. 如果插入成功,请查询数据库以检索该行以及其他表中的任何其他相关信息
  5. 存储变量行中的值
  6. 打印包含该信息的div
  7. 所有这些都是从jQuery函数调用的,所以我希望我的所有HTML都会被返回,但WHILE循环中没有返回任何内容。我可以在它之前和之后回复文本,我看到它很好,但是循环内部没有任何内容可以打印,我只是看不到我的错误。没有任何错误。

    感谢。

1 个答案:

答案 0 :(得分:6)

mysql_fetch_array()不接受查询,需要资源(结果)。

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

如果您只是从结果中访问关联键,那么您也应该使用mysql_fetch_assoc()代替。