当用户点击我的商品页面上的商品时,会使用$ _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;
我认为围绕Model Model会造成麻烦,但没有它们,我会收到警告:mysql_fetch_row()期望参数1是资源,布尔给定错误。
我的数据库列看起来像
品牌|型号|价格|说明|图片
我尝试过的其他一些内容包括
$query = mysql_query("SELECT * FROM item WHERE Model Number = $_GET['ModelNumber']");
这给了我一个语法错误。我也尝试连接$ _GET,这给了我一个mysql_fetch_row()期望参数1是资源,布尔给定错误
这让我相信我也会错误地显示结果。我不确定是否需要将它放在where循环中,就像我在上一页显示数据库中的所有项目一样,因为这只是显示一个。
答案 0 :(得分:1)
首先,请注意您的问题的第一条评论。你肯定想要添加某种卫生设施,至少是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告诉我们幕后发生了什么。
答案 1 :(得分:1)
似乎您的“结果”为单个变量提取了太多信息。 另外,我不认为你的表应该有空格的列名,我建议用破折号或下划线填充它们。
这是我的建议:
$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'];
}
这将使用表中的任何内容填充所有这些变量。
答案 2 :(得分: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());
您将看到代码产生的错误输出