Цикл PHP WHILE таинственно не производит никакого вывода - PullRequest
0 голосов
/ 18 мая 2011

Сначала код, объяснение после:

$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. Если вставка прошла успешно, запросите базу данных, чтобы получить эту строку вместе с любой другой связанной информацией из других таблиц
  4. Сохранить значения из строки в переменных
  5. Печатьdiv, содержащие эту информацию

Все это вызывается из функции jQuery, поэтому я ожидаю, что весь мой HTML будет возвращен, но внутри цикла WHILE ничего не возвращается.Я могу повторить текст до и после него, и я вижу это прекрасно, но ничего внутри цикла не будет напечатано, и я просто не вижу свою ошибку.Также не появляется никаких ошибок.

Спасибо.

1 Ответ

6 голосов
/ 18 мая 2011

mysql_fetch_array() не принимает запрос, он берет ресурс (результат).

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

Также ничего не стоит, что если вы получаете доступ только к ассоциативным ключам из результата, вы должны использовать mysql_fetch_assoc().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...