我试图使用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;
}
然后我对此进行编辑:echo $postId." ";
并在ID之间获得一个空格,如下所示:8 9 10。
我试图做$postIds = explode(" ", $postId);
然后回显例如$postIds[0]
,但我又一次获得了所有ID
现在我不知道该怎么办,所以我需要帮助^^
答案 0 :(得分:0)
将$postId = $result['idPosts'];
替换为$postId[] = $result['idPosts'];
。这样,您可以创建数组,就像访问$postId[0]
一样。
您还忘记了再次查询。
...
$sql = "SELECT idPosts FROM posts WHERE idUsers=$id";
$sth = $conn->query($sql);
if(!$sth) {
...
答案 1 :(得分: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/>";
}