Как отделить вывод от базы данных?

Я пытался получить несколько строк из моей базы данных с помощью PHP, но все, что я получил, это одна строка текста, например: «8910»

Мой код следующий:

  $sql = "SELECT * FROM posts WHERE idUsers=$id";
$sth = $conn->query($sql);
if(!$sth) {
echo("Error description: " . mysqli_error($conn));
die();
}

$rows = mysqli_num_rows($sth);

for ($x = 0; $x <= $rows; $x++) {
$sql = "SELECT idPosts FROM posts WHERE idUsers=$id";
if(!$sth) {
echo("Error description: " . mysqli_error($conn));
die();
}
$result = mysqli_fetch_array($sth);

$postId = $result['idPosts'];

echo $postId;

}

И тогда я редактирую это: эхо $postId." ";

И получите пробел между идентификаторами, вот так: 8 9 10.

Я пытался сделать $postIds = explode(" ", $postId);

И затем эхом к примеру $postIds[0] но я снова получаю все удостоверения личности

Теперь я не знаю, что делать, поэтому мне нужна помощь ^^

0

Решение

замещать $postId = $result['idPosts']; с $postId[] = $result['idPosts'];, Таким образом, вы создаете массив, и вы можете просто получить к нему доступ, как $postId[0],

Вы также забыли запросить еще раз.

...
$sql = "SELECT idPosts FROM posts WHERE idUsers=$id";
$sth = $conn->query($sql);
if(!$sth) {
...
0

Другие решения

Ваш второй запрос не нужен, у вас уже есть все данные из первого запроса. Просто замените ваш код следующим:

$sql = "SELECT * FROM posts WHERE idUsers=$id";
$sth = $conn->query($sql);
if (!$sth) {
echo("Error description: " . mysqli_error($conn));
die();
}
$postIds = array();
while ($row = mysqli_fetch_array($sth)) {
$postIds[] = $result['idPosts'];
}

После этого цикла у вас будет массив всех idPosts ценности. Затем вы можете обработать их, как вам нужно. Или вы можете обработать их в цикле:

while ($row = mysqli_fetch_array($sth)) {
$postId = $result['idPosts'];
// code to process postId e.g.
echo "$postId<br/>";
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector