[英]Select data from SQL database and display in table does not work
我不明白為什么這行不通,我已經堅持了很長時間,並嘗試了許多不同的替代方法,但是它只是不打印數據庫中的數據。
目前,我只是想獲取ID以進行打印,但最終我想打印數據庫中的大多數數據(不包括哈希值)。
這是我的代碼:
<!DOCTYPE html>
<html>
<head>
<title>Staroids Leaderboard</title>
</head>
<body>
<table border=1px>
<thead>
<tr>
<td>name</td>
<td>score</td>
</tr>
</thead>
<tbody>
<?php
$connect = mysql_connect("localhost","root", "password");
if (!$connect) {
die(mysql_error());
}
mysql_select_db("staroids");
$results = mysql_query("SELECT id FROM scores");
while($row = mysql_fetch_array($results)) {
$name = $row['id']
?>
<tr>
<td><?php echo '$name'?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</body>
</html>
下圖顯示了html中的外觀:
此圖顯示了本地主機中的數據庫,並且您可以看到有很多數據,但是似乎沒有一個名稱可以打印?
更正您的語法
$name = $row['id']; //Put ; here
<?php echo $name;?> //Remove quotes and put ;
從數據庫中選擇名稱,然后可以獲取名稱。
$results = mysql_query("SELECT id,name FROM scores");
while($row = mysql_fetch_array($results)) {
$name = $row['name'];
?>
<td><?php echo $name;?></td>
並且不要使用mysql_*
函數,因為它們已被棄用,而應使用mysqli_*
函數或PDO
語句。
正如@Nedstark所說,使用try die(mysql_error());
有關mysql錯誤的錯誤。
<td><?php echo $name;?></td>
或使用
<td><?php echo "$name";?></td> <!--(Bad idea but works)->
變量使用雙引號(“”)而不是單引號(“)
<?php
session_start();
if (!(isset($_SESSION['UserName'])))
{
echo "<script type=\"text/javascript\">alert('Unauthorize user are redirected to Login page');".
header('Location:http://localhost/campus');
}
include_once "connect.php";
$find = mysql_query("YOUR SELECT STATEMENT ") or die('error');
ob_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ST. MICHAEL's COLLEGE ILIGAN CITY</title>
<style>
AlignJst {
text-align:justify;
text-justify:inter-word;
}
pTable {
margin:2cm 4cm 3cm 4cm;
}
body {color: black; font-size: 10px; font-family: Helvetica, Arial, non-serif;}
a:link {color: #FF8C00;}
a:visited {color: #FF8C00;}
a:hover {color: #FF8C00; background: #ADD8E6; text-decoration:none;}
a:active {color: #FF0000;}
p {line-height: 2em;
font-size:85%;
color:black;
letter-spacing: 0.3em
}
h1 {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 12pt;
color: navy;
padding-top: 12px;
padding-bottom: 3px;
}
</style>
</head>
<body>
<?php
echo "<CENTER>"."<H1>TABLE TITLE</H>" . "<BR />";
echo "<H1>SUBTITLE</H>"."</CENTER>"."<BR/>";
echo "<CENTER>"."<p>"."<b>" . "PAST MORNING PRAYER SCHEDULE" ."</b>"."</p>"."</CENTER>"."<BR/>";
echo "<table border='1' width='100%' align ='center'>";
echo "<tr>";
echo "<th>SPONSOR NAME</th>";
echo "<th>VENUE </th>";
echo "<th>DATE EVENT</th>";
echo "<th>TIME </th>";
while($row = mysql_fetch_array($find)){
echo "<tr>";
echo "<td>".$row['sponsor_name']."</td>";
echo "<td>".$row['Venue']."</td>";
echo "<td>".$row['Date_Event']."</td>";
echo "<td>".$row['Time_Event']."</td>";
echo "</tr>";
}
echo "</table>";
echo "<br />". "<br />" ."<br />";
echo "<p align = 'right'>"."Prepared By:" . $_SESSION['UserName'] ."</p>";
?>
</body>
除了更改mysql ==> msqli之外,我還建議一些調試策略,在這種情況下,我將:
要修復回聲,您需要選擇以下兩個選項之一:
<?php echo $variable; ?> <?php echo "this is my variable {$variable}"; ?>
如果您用單引號引起來,PHP不會解析將要打印的內容,而是將其打印為文本,因此您應該在HTML中打印$ name ...但是,因為我看不到任何內容黑色屏幕快照中的$ name文本,我想您甚至可能不會進入該循環...
一個好的調試策略是查詢更廣泛的內容,即“ SELECT * FROM`scores”,然后您可以執行
<?php print_r($row); ?>
之后
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.