我正在创建一个移动图书馆应用程序,对于该应用程序的一项功能,我试图接收某个用户签出的所有书籍的bookID。我希望能够echostring格式(最好在每个单独的书号之间留有空格)来返回查询结果,以便稍后在应用程序中处理数据。

我在网上找到的许多答案只是简单地说明了如何执行查询,但没有说明之后如何使用数据。抱歉,如果这是一个简单的问题,我是一个新手。

<?php
require "conn.php";

$email = $_POST["email"];
$mysql_qry = "SELECT * FROM user_data WHERE email like '$email'";

$mysql_qry2 = "SELECT DISTINCT(bookID) AS bookID FROM books_checked_out
WHERE userID LIKE $user_id ORDER BY bookID DESC";

$result = mysqli_query($conn, $mysql_qry);

if(mysqli_num_rows($result) > 0) {
    $row = mysqli_fetch_assoc($result);
    $user_id = $row["user_id"];
    $result2 = mysqli_query($conn, $mysqlqry2);
}
else
{
    echo "Error, user name not found";
}

$conn->close;
?>

最佳答案

您可以将结果附加到数组中并使用implode()显示值:

<?php
require "conn.php";
$email = $_POST["email"]; // You may test here : if (isset($_POST['email']))
$mysql_qry = "SELECT * FROM user_data WHERE email = '$email'";
$result = mysqli_query($conn, $mysql_qry);
if(mysqli_num_rows($result) > 0)
{
    $row = mysqli_fetch_assoc($result);
    $user_id = $row["user_id"];

    $mysql_qry2 = "SELECT DISTINCT(bookID) AS bookID FROM books_checked_out
                   WHERE userID = $user_id ORDER BY bookID DESC";

    $result2 = mysqli_query($conn, $mysql_qry2);
    if(mysqli_num_rows($result2) > 0)
    {
        $ids = [];
        while ($row = mysqli_fetch_assoc($result2)) {
            $ids[] = $row['bookID'] ;
        }
        echo implode(" ", $ids) ; // print list of ID
    }
    else
    {
        echo "No books checked out!";
    }
}
else
{
    echo "Error, user name not found";
}
$conn->close;


注意:我在这里使用了您的代码,但是,您必须查看parameterized queries以防止SQL注入。


您的查询$mysql_qry2应该在获取$user_id之后定义。
您的LIKE $user_id可以替换为=

10-05 20:54
查看更多