Почему это не работает?
<?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; ?>
УБЕДИТЕСЬ СКАЗАТЬ, НО НЕТ ОТВЕТОВ. ЛЮБЫЕ ДРУГИЕ ИДЕИ?
Если ваш запрос mysqli возвращает нулевые строки, вы никогда не увидите ничего напечатанного в вашем цикле while. Если $ title и $ message не установлены (потому что вы хотели бы ссылаться на них на $ result ['title'] & $ result ['message'], если это имена полей в базе данных), вы увидите только два <br />
в исходных текстах ваших страниц.
Если условие while while не является истинным, содержимое цикла while никогда не будет выполняться.
Поэтому, если из запроса ничего не выйдет, вы не увидите никакого вывода.
Отображает ли код что-либо или полностью пропускает вывод? Если он полностью проскальзывает, тогда ваш запрос возвращает 0 строк. Если он выводит <br />
s, вам нужно проверить свои переменные. Я мог ошибаться, не зная всего кода, но обычно в этом случае у вас будет что-то вроде echo $result['title']
вместо echo $title
Попробуй это:
<?php $result = mysql_query($query); while($row = mysqli_fetch_assoc($result)){ echo $title.'<br/><br/>'.$message; } ?>
Если $ title и $ message поступают из вашего запроса mysql, вам необходимо получить к ним доступ через массив $ result, возвращаемый mysqli_fetch_assoc.
echo $result['title']; echo $result['message'];
Также, если вы используете mysqli, вы будете делать что-то вроде этого:
$mysqli = new mysqli("localhost", "user", "password", "db"); if ($result = $mysqli->query($query)) { while ($row = $result->fetch_assoc()) { print $row['title']; } $result->close(); }
Это работает;
<?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']; } ?>
В основном я убедился, что он не выбирает первый результат из запроса и затем полагается на то, что для повторения одного и того же сообщения повторяется больше результатов.