Помогите с PHP Хотя функция - PullRequest
0 голосов
/ 14 января 2011

Почему это не работает?

<?php 
$select = "select * from messages where user='$u'";

$query = mysqli_query($connect,$select) or die(mysqli_error($connect));

$row = mysqli_num_rows($query);

$result = mysqli_fetch_assoc($query);

$title = mysqli_real_escape_string($connect,trim($result['title']));

$message = mysqli_real_escape_string($connect,trim($result['message']));

while(($result = mysqli_fetch_assoc($query))){
echo $title;
echo '<br/>';
echo '<br/>';
echo $message;
}

?>

где как это работает -

<?php

echo $title;

?>

Извините, но никто из ответов не работает. ЛЮБЫЕ ДРУГИЕ ИДЕИ?

Ответы [ 7 ]

1 голос
/ 14 января 2011

Кодируете ли вы что-нибудь для отображения или полностью пропускаете вывод?Если он полностью пропущен, то ваш запрос вернул 0 строк.Если он выводит <br /> s, то вам нужно проверить ваши переменные.Я могу ошибаться, не зная всего кода, но обычно в этом случае у вас будет что-то вроде echo $result['title'] вместо echo $title

1 голос
/ 14 января 2011

Если условный цикл while не равен true, содержимое цикла while никогда не будет выполнено.

Так что если из запроса ничего не получится, вы не увидите никакого вывода.

1 голос
/ 14 января 2011

Если ваш запрос mysqli возвращает ноль строк, вы никогда не увидите ничего напечатанного в цикле while. Если $ title и $ message не установлены (потому что вы хотели бы ссылаться на них по $ result ['title'] & $ result ['message'], если это имена полей в базе данных), то вы увидите только два <br /> теги в исходном коде ваших страниц.

0 голосов
/ 14 января 2011

Работает ли это;

<?php 
$select = "select * from messages where user='$u'";

$query = mysqli_query($connect,$select) or die(mysqli_error($connect));

$row = mysqli_num_rows($query);

while(($result = mysqli_fetch_assoc($query))){
    echo $result['title'];
    echo '<br/>';
    echo '<br/>';
    echo $result['message'];
}

?>

По сути, я позаботился о том, чтобы он не выбирал первый результат из запроса, а затем полагался на наличие большего количества результатов для циклического прохождения для печати того же сообщениянесколько раз.

0 голосов
/ 14 января 2011

Также, если вы используете mysqli, вы делаете что-то вроде этого:

$mysqli = new mysqli("localhost", "user", "password", "db");

if ($result = $mysqli->query($query)) {

    while ($row = $result->fetch_assoc()) {
      print $row['title'];
    }

    $result->close();
}
0 голосов
/ 14 января 2011

Если $ title и $ message приходят из вашего запроса mysql, вам нужно получить к ним доступ через массив $ result, возвращенный mysqli_fetch_assoc.

echo $result['title'];
echo $result['message'];
0 голосов
/ 14 января 2011

Попробуйте это:

<?php 

$result = mysql_query($query);
while($row = mysqli_fetch_assoc($result)){
   echo $title.'<br/><br/>'.$message;
}

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