0

当用户单击我的项目页面上的项目时,它会将他们带到使用 $_GET 传递项目品牌和型号的空白页面模板。

当该用户单击以使用我的数据库中的产品详细信息填充空白页面时,我想执行另一个 MYSQL 查询。我想使用型号(唯一 ID)检索单行以使用信息填充页面。我已经尝试了几件事,但遇到了一点困难。

在我的空白项目页面上,我有

                $brand = $_GET['Brand'];
                $modelnumber = $_GET['ModelNumber'];

                $query = mysql_query("SELECT * FROM items WHERE `Model Number` = '$modelnumber'");
                $results = mysql_fetch_row($query);

                echo $results;

我认为在型号周围有 '' 会造成麻烦,但是没有它们,我会收到警告:mysql_fetch_row() 期望参数 1 是资源,布尔给定错误。

我的数据库列看起来像

品牌 | 型号 | 价格 | 说明 | 图片

我尝试过的其他一些事情包括

$query = mysql_query("SELECT * FROM item WHERE Model Number = $_GET['ModelNumber']");

这给了我一个语法错误。我还尝试连接 $_GET 这给了我一个 mysql_fetch_row() 期望参数 1 是资源,布尔给定错误

这让我相信我也会错误地显示结果。我不确定我是否需要将它放在一个 where 循环中,就像我在上一页显示数据库中的所有项目一样,因为这只是显示一个。

4

3 回答 3

0

首先,请注意对您的问题的第一条评论。你肯定想添加某种环境,至少 mysql_real_escape_string,尽管 PDO 或 Mysqli 会更受欢迎。

其次,在得到你问题的真正答案之前,让我们了解更多关于你的错误的信息。

尝试以下操作:

$brand = mysql_real_escape_string($_GET['Brand']);
$modelnumber = mysql_real_escape_string($_GET['ModelNumber']);

$query = mysql_query("SELECT * FROM items WHERE `Model Number` = '$modelnumber'")OR die(mysql_error());
$results = mysql_fetch_row($query);

var_dump($results);

mysql_error 告诉我们幕后发生了什么。

于 2012-12-11T23:00:40.410 回答
0

似乎您的“结果”为单个变量提取了太多信息。另外,我不认为你的表应该有带空格的列名,我建议用破折号或下划线填充它们。

这是我的建议:

$qry = mysql_query("SELECT * FROM items WHERE Model_Number = '$modelnumber'"); //REMEMBER TO MAKE THE CHANGE "Model Number" -> "Model_Number"
while($row = mysql_fetch_array($qry)){
    $brand = $row['Brand'];
    $modelnumber = $row['Model_Number'];
    $price = $row['Price'];
    $description = $row['Description'];
    $image = $row['Image'];
}

这将使用您表中的任何内容填充所有这些变量。

于 2012-12-11T23:01:50.183 回答
0

如果您使用 mysql_fetch_row 它只会返回对应于获取行的字符串的数字数组,如果没有更多行,则返回 FALSE http://php.net/mysql_fetch_row

如果您需要检索该行内的数据。您需要使用 mysql_fetch_array()

也尝试使用 mysql_error();

 $results = mysql_fetch_row($query) or die(mysql_error());

您将看到您的代码产生的错误输出

于 2012-12-11T23:09:09.627 回答