[英]Mysqli While loop: print variables inside html
我的php While循環運行查詢,但是結果必須在html內打印。 在這一刻,我不知道如何做到這一點:
我的PHP 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'];
?>
在while循環之外。 在HTML中打印變量:
<?php echo $row['book_id']; ?> <br>
<?php echo $row['book_name']; ?>
在while循環和連接時關閉:
<?php
}
mysqli_close($dbconn);
?>
有准備好的陳述:
<?php
session_start();
$username = $_SESSION['Username'];
error_reporting(E_ALL);
ini_set('display_errors', 1);
include"config.inc.php";
/* connect to DB */
$mysqli = mysqli_connect("$host", "$user", "$mdp", "$db");
if (mysqli_connect_errno()) { echo "Error connecting : " . mysqli_connect_error($mysqli); }
$query = " SELECT * FROM books WHERE username=? ";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $username);
$results = $stmt->execute();
$stmt->bind_result($book_id, $book_name);
$stmt->store_result();
if ($stmt->num_rows > 0) {
while($stmt->fetch()){
?>
<p><?php echo"$book_name"; ?> > <a href="editBook.php?bookid=<?php echo"$book_id"; ?>&book_name=<?php echo"$book_name"; ?>">Edit</a></p>
<?php
}
}
else
{ echo"[ no data ]"; }
?>
(重寫)
真正的問題是:
while ($rows = ...) ;
直到$rows
為NULL
為止。 因此,此后沒有任何顯示。
由於您是在單個函數調用中獲取整個數組的,因此不需要循環!
$rows = ...;
但是然后您需要引用first(?)行以獲得所需的數據:
$row = $rows[0];
因此,另一種方法是只獲取一行,然后關閉獲取過程。
在你的HTML中,你必須這樣做
<a href="editBook.php?bookid=<?php echo $rows['book_id']; ?>&book_name=<?php echo $rows['book_name']; ?>">Edit</a>
由於每個用戶可能有多本書籍,因此您必須在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的面向對象方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.