我不明白为什么这不起作用,我已经坚持了很多年并尝试了很多不同的选择,但它只是不打印数据库中的数据。
目前我只是想获取要打印的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中的内容:
此图像显示本地主机中的数据库,您可以看到有大量数据,但似乎没有打印出任何名称?!
答案 0 :(得分:3)
纠正您的语法
$name = $row['id']; //Put ; here
<?php echo $name;?> //Remove quotes and put ;
从DB中选择名称然后你可以得到名字。它应该是
$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错误的错误。
答案 1 :(得分:1)
<td><?php echo $name;?></td>
或使用
<td><?php echo "$name";?></td> <!--(Bad idea but works)->
变量使用双引号(“”)而不是单引号('')
答案 2 :(得分:1)
<?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>
答案 3 :(得分:0)
除了更改mysql ==&gt; msqli,我建议使用几种调试策略,在这种情况下我会:
修复回声,您需要选择以下两个选项之一:
<?php echo $variable; ?>
<?php echo "this is my variable {$variable}"; ?>
如果你单引号PHP不解析即将打印的内容,它只是将其打印为文本,所以你应该在HTML中打印$ name ...但是,因为我不知道看到黑色截图中的任何$ name文字,我想你甚至可能不会进入那个循环...
一个好的调试策略是查询更广泛的东西,即“SELECT * FROM`scats`”,然后你可以做一个
<?php print_r($row); ?>
($ row = mysql_fetch_array($ results)){