Mysqli While循环:在html中打印变量

时间:2017-04-08 19:05:46

标签: php html variables

我的php while循环运行查询,但结果必须在html内打印。在这一刻我不知道如何做到这一点:

我的php while while循环

<?php
include "connect.php";
$username=$_SESSION['Username'];

$result = mysqli_query($dbconn,"
 SELECT *
  FROM books
 WHERE username = '$Username'
");
while($rows = mysqli_fetch_array($result));
?>

在此代码之后有一个Html代码,我想打印变量:

<a href="editBook.php?bookid=<?php echo $book_id; ?>&book_name=<?php echo $book_name; ?>">Edit</a>

此时变量为空

如何解决这个问题?

[已解决]更新 我已经解决了我的问题。这是正确的PHP脚本。工作正常:

<?php
include "connect.php";
$username=$_SESSION['Username'];

$result = mysqli_query($dbconn,"
 SELECT *
  FROM books
 WHERE username = '$Username'
");
global $book_id, $book_name
while($row = mysqli_fetch_array($result)) {
$book_id = row['book_id'];
$book_name = row['book_name'];
?>

外循环。在Html中打印变量:

<?php echo $row['book_id']; ?> <br>
<?php echo $row['book_name']; ?>

关闭循环和连接:

<?php
}
mysqli_close($dbconn);
?>

4 个答案:

答案 0 :(得分:1)

准备好的陈述:

Reader.ready()

答案 1 :(得分:1)

(重写)

真正的问题是:

while ($rows = ...) ;

此循环直到$rowsNULL。所以事后没有什么可以显示的。

由于您在单个函数调用中获取整个数组,因此不需要循环!

$rows = ...;

但是你需要引用第一行(?)来获得所需的数据:

$row = $rows[0];

因此,另一种方法是只获取一行,然后关闭获取过程。

答案 2 :(得分:0)

在你的HTML中,你必须这样做

<a href="editBook.php?bookid=<?php echo $rows['book_id']; ?>&book_name=<?php echo $rows['book_name']; ?>">Edit</a>

答案 3 :(得分:0)

由于每个用户可能有多本书,您必须在while循环内打印链接,或将其存储在字符串中:

<?php
include "connect.php";
$username = $_SESSION['Username'];

$result = mysqli_query($dbconn,"
    SELECT * FROM books
    WHERE username = '$Username'
");

$links = ""; // all links are stored in this string
while($rows = mysqli_fetch_array($result)) {
    // I assume that the columns are called `id` and `name`
    $links .= '<a href="editBook.php?bookid='. $rows["id"] .'&book_name='. $rows["name"] .'">Edit '. $rows["name"] .'</a>';
}
?>

在html代码中只需编写

即可
<?php echo $links ?>

请注意,您应该使用预准备语句。您还应该看一下面向对象的方法,使用mysqli类来使用mysqli。