如何使用数据库和数组中的 fetch_assoc 创建无序列表
How to make a unordered list using fetch_assoc from database and arrays
尝试通过从数据库中选择预订参考来创建列表,将它们排序到一个数组中,然后将每个数组值传递到列表中的每个项目。例如第一个项目的第一个预订参考,第二个项目的第二个参考等...
这是代码。
<html>
<head>
<title>Manage booking</title>
<link rel="stylesheet" type="text/css" href="style1.css">
</head>
<body>
<h3>Oadby Granville Tennis Club Manage Booking</h3>
<br><br><br>
<?php
include "dbconnect.php";
session_start();
$login_ID = $_SESSION['id'];
$query = "SELECT Booking_ID
FROM `booking`
WHERE Login_ID = '$login_ID';";
$bookingArray = array();
$result = $mysqli -> query($query);
while ($row = $result->fetch_assoc()){
printf ("%s<br>", $reference = $row["Booking_ID"]);
array_push($bookingArray, $reference . "<br>");
}
print_r ($bookingArray);
?>
<table border="1" style="width:50%">
<caption>Please select a booking to edit:</caption>
<tr>
<td>
<ul style="list-style-type:circle">
<?php
$arrayNo = 1;
while ($row = $result->fetch_assoc()){
printf ("<li><a href='UpdateBooking.php'>Booking ID:%s</a>" . $bookingArray[$arrayNo] . "</li><br>");
$arrayNo = $arrayNo + 1;
}
?>
<li><a href="UpdateBooking.php">Booking ID</a></li>
</ul>
</td>
</tr>
</body>
</html>
您的第一个 while ($row = $result->fetch_assoc()) {..}
将所有内容都传输到 $bookingArray
,直到结果集耗尽。使用第二个 while ($row = $result->fetch_assoc()) {..}
,您将一无所获。此外,您对 printf 的使用很奇怪。
试试这个而不是你的第二个循环:
foreach($bookingArray as $Booking)
{
echo "<li><a href='UpdateBooking.php'>Booking ID:$Booking</a></li><br>";
}
但是,UpdateBooking.php
不知道应该更改哪个预订。因此,您应该考虑将 BookingId 附加到 URL.
编辑 2016-03-02:
要将 BookingId 附加到 URL,您应该尝试:
foreach($bookingArray as $Booking)
{
echo "<li><a href='UpdateBooking.php?BookingId=" . urlencode($Booking) . "'>Booking ID:$Booking</a></li><br>";
}
尝试通过从数据库中选择预订参考来创建列表,将它们排序到一个数组中,然后将每个数组值传递到列表中的每个项目。例如第一个项目的第一个预订参考,第二个项目的第二个参考等... 这是代码。
<html>
<head>
<title>Manage booking</title>
<link rel="stylesheet" type="text/css" href="style1.css">
</head>
<body>
<h3>Oadby Granville Tennis Club Manage Booking</h3>
<br><br><br>
<?php
include "dbconnect.php";
session_start();
$login_ID = $_SESSION['id'];
$query = "SELECT Booking_ID
FROM `booking`
WHERE Login_ID = '$login_ID';";
$bookingArray = array();
$result = $mysqli -> query($query);
while ($row = $result->fetch_assoc()){
printf ("%s<br>", $reference = $row["Booking_ID"]);
array_push($bookingArray, $reference . "<br>");
}
print_r ($bookingArray);
?>
<table border="1" style="width:50%">
<caption>Please select a booking to edit:</caption>
<tr>
<td>
<ul style="list-style-type:circle">
<?php
$arrayNo = 1;
while ($row = $result->fetch_assoc()){
printf ("<li><a href='UpdateBooking.php'>Booking ID:%s</a>" . $bookingArray[$arrayNo] . "</li><br>");
$arrayNo = $arrayNo + 1;
}
?>
<li><a href="UpdateBooking.php">Booking ID</a></li>
</ul>
</td>
</tr>
</body>
</html>
您的第一个 while ($row = $result->fetch_assoc()) {..}
将所有内容都传输到 $bookingArray
,直到结果集耗尽。使用第二个 while ($row = $result->fetch_assoc()) {..}
,您将一无所获。此外,您对 printf 的使用很奇怪。
试试这个而不是你的第二个循环:
foreach($bookingArray as $Booking)
{
echo "<li><a href='UpdateBooking.php'>Booking ID:$Booking</a></li><br>";
}
但是,UpdateBooking.php
不知道应该更改哪个预订。因此,您应该考虑将 BookingId 附加到 URL.
编辑 2016-03-02: 要将 BookingId 附加到 URL,您应该尝试:
foreach($bookingArray as $Booking)
{
echo "<li><a href='UpdateBooking.php?BookingId=" . urlencode($Booking) . "'>Booking ID:$Booking</a></li><br>";
}