Я пытался получить несколько строк из моей базы данных с помощью 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]
но я снова получаю все удостоверения личности
Теперь я не знаю, что делать, поэтому мне нужна помощь ^^
замещать $postId = $result['idPosts'];
с $postId[] = $result['idPosts'];
, Таким образом, вы создаете массив, и вы можете просто получить к нему доступ, как $postId[0]
,
Вы также забыли запросить еще раз.
...
$sql = "SELECT idPosts FROM posts WHERE idUsers=$id";
$sth = $conn->query($sql);
if(!$sth) {
...
Ваш второй запрос не нужен, у вас уже есть все данные из первого запроса. Просто замените ваш код следующим:
$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/>";
}