2

我是 php 和编程的新手,我一直在学习教程,但是在尝试将产品显示到网页上时遇到了问题,这是正在测试的代码

<?php 

if (isset($_GET['id'])) {

    include "storescripts/connect_to_mysql.php"; 
    $id = preg_replace('#[^0-9]#i', '', $_GET['id']); 
    $sql = mysql_query("SELECT * FROM products WHERE id='$id' LIMIT 1");
    $productCount = mysql_num_rows($sql); 
    if ($productCount > 0) {

        while($row = mysql_fetch_array($sql)){ 
             $product_name = $row["product_name"];
             $price = $row["price"];
             $details = $row["details"];
             $category = $row["category"];
             $subcategory = $row["subcategory"];
             $date_added = strftime("%b %d, %Y", strtotime($row["date_added"]));
         }

    } else {
        echo "That item does not exist.";
        exit();
    }

} else {
    echo "Data to render this page is missing.";
    exit();
}
mysql_close();
?>

当我尝试通过浏览器查看页面时,我收到消息“缺少呈现此页面的数据”

我知道这与

if (isset($_GET['id'])) {

我假设这可能与“id”有关,但我不知道如何解决它。任何指示和帮助将不胜感激,如果这看起来很基本,但就像我说的那样,我是新手,无法解决这个问题。我整天都在努力

谢谢

4

4 回答 4

1

显然,$_GET['id']没有设置。如果您的链接类似于http://www.example.com/index.php?id=32,它将被设置。

其次,不要在未清理它们的情况下在查询中使用 GET/POST 变量!

第三,首先不要使用 mysql_query,而是使用 PDO 或 mysqli

于 2013-02-17T18:05:34.323 回答
0

当您看到 $_GET 时,它正在寻找 URL 中的参数。所以:

http://localhost/yourphpscript.php?id=123

...是它所期待的。某些 ID 必须在 URL 中定义。

于 2013-02-17T18:08:53.120 回答
0

你可以试试这段代码:

    <?php
    if (isset($_GET['id'])){ //Someone submitted a form or just prepended parameter to link
      include "storescripts/connect_to_mysql.php"; //Include script with mysql connection
      $id = preg_replace('#[^0-9]#i', '', $_GET['id']); //Sanitize input - remove everything besides numbers
      $result = mysql_query("SELECT * FROM products WHERE id='$id' LIMIT 1"); //Execute query. Only 1 product because of LIMIT 1
      if (mysql_num_rows($result)==1){ //If the product is found
         $product = mysql_fetch_assoc($result) ; //Take the product
         foreach ($product as $property => $value){ //Go through each property of product
           echo "<div> {$property} : {$value} </div>" ;
         }
      }
    } else {?>
      <form method="get" action="<?php $_SERVER['PHP_SELF'] ; ?>">
        <input type="text" name="id" />
        <input type="submit" value="Submit product ID"/>
      </form>
<?php    
}
    ?>

只要问你是否有任何问题。

于 2013-02-17T18:31:37.483 回答
0

学会追踪你的身份证。清理并检查发送 id 的 url 是否传递了正确的值,并在开始时再次检查值,如

                     <?php
                    echo $_GET['id'];
                      ?>

用它来知道你的 id 值是多少

于 2013-02-17T19:03:29.530 回答