我需要一些有关我的错误的帮助。我有一个下拉菜单,其中必须显示从数据库中获取列的表。
这是问题的示例:
它仅显示表,而不显示数据库中的数据。这就是它的意思
mysqli_fetch_array()期望参数1为mysqli_result,布尔值 给
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<style>
table {
width: 100%;
border-collapse: collapse;
}
table, td, th {
border: 1px solid black;
padding: 5px;
}
th {text-align: left;}
</style>
</head>
<body>
<?php
$q = intval($_GET['q']);
$connect = mysqli_connect("localhost", "root", "", "trackingsystemdb");
if (!$connect) {
die('Could not connect: ' . mysqli_error($connect));
}
mysqli_select_db($connect,"trackingsystemdb");
$sql="SELECT * FROM personal_info WHERE position, date_hired, nickname = '".$q."'";
$result = mysqli_query($connect,$sql);
echo "<table>
<tr>
<th>position</th>
<th>date_hired</th>
<th>nickname</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['position'] . "</td>";
echo "<td>" . $row['date_hired'] . "</td>";
echo "<td>" . $row['nickname'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($connect);
?>
</body>
</html>
答案 0 :(得分:1)
您必须将查询字符串更改为
$sql = "SELECT * FROM personal_info WHERE nickname = $q";
答案 1 :(得分:0)
您收到错误消息,因为mysqli_query
为您的代码返回了false
。
您必须将查询字符串更改为:
$sql="SELECT * FROM personal_info WHERE position AND date_hired AND nickname = '".$q."'";
如果您希望它们都等于$q
,这似乎不太合逻辑,但实际上是您的代码所暗示的。
答案 2 :(得分:0)
将您的sql更改为此
$sql = "SELECT * FROM personal_info WHERE nickname = '".$q."'";
答案 3 :(得分:0)
更正您的SQL查询,因为$ q具有整数值,并且您将其传递给日期和名称过滤器
SELECT * FROM personal_info WHERE position = '".$q."'
如果位置包含整数值
希望如此对您有帮助
答案 4 :(得分:0)
您的SQL查询错误。 最好在运行mysql查询时创建条件,以确保SQL查询正常工作。
if (!mysqli_query($connect,$sql)) { echo 'Error'; }