我只是在学习PHP,我按照本书的最后一个细节,当我进入我创建的localhost网页以从数据库中提取信息时,网页上没有显示任何内容。我整晚都在排除故障,我已经谷歌一遍又一遍地阅读这本书,看看我错过了什么。我发布了我写的代码,看看是否有人可以带领我在正确的区域来解决我的问题。
<html>
<head>
<title>Pay Scale</title>
<style type="text/css">
table {
background-color: #FCF;
}
th {
width:150px;
text-align: left;
}
</style>
</head>
<body>
<h1>Pay Scale</h1>
<form method= "post" action= "Payscale.php"
<input type="hidden" name="submitted" value="true" />
<label> Search Category:
<select name="category">
<option value="Id">ID</option>
<option value="First Name">First Name</option>
<option value="Last_Name">Last_Name</option>
</select>
</label> <label>Search Criteria:
<input type="text" name="criteria" />
</label>
<input type="submit" />
</form>
<?php
if (isset($_POST['submitted'])){
include('payconnect.php');
$category = $_POST['category'];
$criteria = $_POST['criteria'];
$query = "SELECT * FROM employee pay range WHERE $category = '$criteria'";
$result = mysqli_query($dbcon, $query) or die('error getting data');
echo "<table>";
echo "<tr> <th>ID</th> <th>First Name</th> <th>Last_Name</th> <th>Pay_Range</th> </tr>";
While($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo "<tr><td>";
echo $row['ID'];
echo "</td><td>";
echo $row['First Name'];
echo "</td><td>";
echo $row['Last_Name'];
echo "</td><td>";
echo $row['Pay_Range'];
echo "</td><tr>";
}
echo "<table>";
}
?>
</body>
</html>
答案 0 :(得分:1)
页面的html代码存在一些问题。最明显的是>
标记上没有结束form
,因此浏览器会在下一行中徘徊,认为它是form
标记的一部分。由于该行设置了PHP脚本正在查找的$_POST['submitted']
变量,因此该值未设置且脚本永远不会运行。
要解决此问题,只需在>
声明中添加form
:
<form method="post" action="Payscale.php">
HTML中还有一些其他问题可以同时解决:
在页面顶部:
<html>
<head>
文档应以DOCTYPE
声明开头,以便浏览器知道如何解释页面。对于HTML5,这就像在文件的开头添加一行一样简单:
<!DOCTYPE html>
<html>
<head>
表创建代码中也存在错误:
echo $row['Last_Name'];
echo "</td><td>";
echo $row['Pay_Range'];
echo "</td><tr>"; # A
}
echo "<table>"; # B
标记为A的行和B分别创建新元素 - 表行和新表。你应该关闭元素 - 即。使用</tr>
和</table>
。
答案 1 :(得分:0)
您的开始标记似乎未关闭(一个轻微的语法错误)。
尝试从此处更改:
<form method= "post" action= "Payscale.php"
到此:
<form method="post" action="Payscale.php">
并查看是否能解决问题。
答案 2 :(得分:0)
试一试
<html>
<head>
<title>Pay Scale</title>
<style type="text/css">
table {
background-color: #FCF;
}
th {
width:150px;
text-align: left;
}
</style>
</head>
<body>
<h1>Pay Scale</h1>
<form method= "post" action="Payscale.php">
<input type="hidden" name="submit" value="true"/>
<label> Search Category:
<select name="category">
<option value="Id">ID</option>
<option value="First Name">First Name</option>
<option value="Last_Name">Last_Name</option>
</select>
</label> <label>Search Criteria:
<input type="text" name="criteria" />
</label>
<input type="submit" value="submit" name="submitted"/>
</form>
</body>
</html>
<强> Payscale.php 强>
<?php
if (isset($_POST['submitted'])){
include('payconnect.php');
$category = $_POST['category'];
$criteria = $_POST['criteria'];
$query = "SELECT * FROM employee pay range WHERE $category = '$criteria'";
$result = mysqli_query($dbcon, $query) or die('error getting data');
echo "<table>";
echo "<tr> <th>ID</th> <th>First Name</th> <th>Last_Name</th> <th>Pay_Range</th> </tr>";
While($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo "<tr><td>";
echo $row['ID'];
echo "</td><td>";
echo $row['First Name'];
echo "</td><td>";
echo $row['Last_Name'];
echo "</td><td>";
echo $row['Pay_Range'];
echo "</td><tr>";
}
echo "<table>";
}
?>