-1

我无法从 $_GET 变量中检索 id。我正在尝试更新具有特定 ID 的数据库中的表。问题是,我可以在地址栏上看到 id,但无法通过 $_GET 检索它,这是代码。这里我只分享部分代码。请检查并指导我。

<?php
session_start();
include 'connect.php';  
$id= $_GET['product_id'];

$select_query = "select * from products LEFT JOIN product_description 
                ON products.product_id='".$_GET['product_id']."' and 
                product_description.product_id='".$_GET['product_id']."' 
                where products.product_id='".$_GET['product_id']."'     ";

if(!$select_query_run = mysql_query($select_query))
{
    echo mysql_error();
}
else


Notice: Undefined index: product_id in
F:\xampp\htdocs\CMS\update_single_product.php on line 36

如果我改用$id它,它会给我第 4 行的错误。

/cms/update_single_product.php?product_id=159

**

我做了一些改变,它现在可以工作了。我仍然不知道它是如何修复的,但它的工作原理:)

**

4

2 回答 2

1

您应该先检查是否设置了 $_GET['product_id']。您还在变量中定义了 $_GET['product_id'] 。在您的查询中使用它,并且不要忘记保护所有输入免受 mysql 注入。

$id = mysql_real_escape_string($_GET['product_id']);

$select_query= "SELECT * FROM products LEFT JOIN product_description ON products.product_id='".$id."' and product_description.product_id='".$id."' where products.product_id='".$id."' ";

你可以尝试 echo $id 看看会发生什么。

附带说明;MySQL 已弃用。您应该改用 mysqli 或 PDO。

于 2013-07-25T05:53:57.363 回答
1

使用 isset() 来避免问题。

if(isset($_GET['product_id'])) {
  $id= $_GET['product_id'];

} else {
  $id = 1;
}
// code here

使用它,您可以避免采取行动而不会获得价值。

于 2013-07-25T05:45:21.067 回答