我目前正忙于一个项目,我也是这个PHP脚本的新手。
例如,有一个名为"足球"的类别,我还创建了一个脚本,可以在其中将项目添加到数据库中。现在,当我转到"足球"类别时,我会看到一个选项,例如"添加新项目这是它显示的方式:
https://i.stack.imgur.com/Phcdu.png
但是现在我想添加一个产品,例如"阿迪达斯或耐克",所以我输入了"耐克"@项目,它将在足球部分显示耐克的所有产品。但问题是我没有收到任何东西:
<?php
include '../config.php';
if (isset($_POST['name']) && isset($_POST['game'])) {
$naame = $db->real_escape_string(trim($_POST['name']));
$gaame = $db->real_escape_string(trim($_POST['game']));
$query_90 = "SELECT * FROM log_items INNER JOIN log_game ON log_items.game = log_mobs.game WHERE log_items.name like '%$naame%' AND log_game.game = '" .$gaame. "' AND log_items.game = '" .$gaame. "'"
;
$result_90 = $db->query($query_90) or die ($db->error());
$n_90 = $result_90->num_rows;
if($result_90 == 0) {
echo 'no results';
} else {
while ($row_90 = $result_90->fetch_object()) {
echo htmlspecialchars($row_90->name);
}
}
?>
看起来问题出在您的查询中,您在内部将log_items
与尚未将后者引入查询的log_mobs
联接。
我只能推测您对log_mobs
表的意图,但我也会
$query_90 = "SELECT * FROM log_items
INNER JOIN log_mobs ON log_items.game = log_mobs.game
INNER JOIN log_game ON log_items.game = log_game.game
WHERE log_items.name like '%$naame%'
AND log_items.game = '" .$gaame. "'";
我从查询中删除了条件AND log_game.game = '" .$gaame. "'
,因为修改后的查询已加入该条件。
此外,这段代码对我来说就像一个错误。
$n_90 = $result_90->num_rows;
if($result_90 == 0) {
echo 'no results';
}
当我确定打算写:
if($n_90 == 0) {
echo 'no results';
}
您正在使用的数据库库看起来像 mysqli,请查看在 real_escape_string 方法上使用预准备语句。