无法从数据库中获取数据-mysqli_fetch_array()期望参数1为mysqli_result,给定布尔值

时间:2018-07-19 06:42:32

标签: php mysqli

我需要一些有关我的错误的帮助。我有一个下拉菜单,其中必须显示从数据库中获取列的表。

这是问题的示例:

enter image description here

它仅显示表,而不显示数据库中的数据。这就是它的意思

  

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>

5 个答案:

答案 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'; }