Php mysqli_查询未定义索引通知

Php mysqli_查询未定义索引通知,php,Php,我尝试过搜索答案,但到目前为止没有任何效果,当$category在url中有值时,下面的代码可以正常工作,但我想在没有值时显示一些代码 $dynamicList = ""; $result = mysqli_query($con,"SELECT * FROM product_catalog WHERE category='".$_GET['category']."'"); while($row = mysqli_fetch_array($result)){

我尝试过搜索答案,但到目前为止没有任何效果,当$category在url中有值时,下面的代码可以正常工作,但我想在没有值时显示一些代码

    $dynamicList = ""; 
    $result = mysqli_query($con,"SELECT * FROM product_catalog WHERE category='".$_GET['category']."'");     
    while($row = mysqli_fetch_array($result)){ 
    $id = $row["id"];
    $title = $row["title"];
    $price = $row["price"];
    $image = $row["image"];
    $product_code = $row["product_code"];
    $description = $row["description"];
    $dynamicList .= 'html code';
    }
    mysqli_close($con);  
    ?>
这是我尝试过的最后一件事,它在每一页上都给了我hello,但在未设置类别时仍然是错误的

    if($result != NULL){
    echo 'hello' ;
    }
    else
    {
    echo 'goodbye';
    }
我的头很可能是炸了,因为我看了这么久,如果有人能给我指出正确的方向,我将不胜感激


谢谢。

为什么不检查类别是否存在

if(isset($_GET['category'])) {
    //yourcode
}

哦,在我忘记之前,您还应该在使用$\u GET['category']运行查询之前对其进行清理。

您最好先测试$\u GET['category']是否存在,然后仅在数据库查询存在时运行,如果不存在,则运行备用代码

做点像

if(isset($_GET['category'])){
    //your database query
}
else{
     //your alternate code
}
这样,您就不会在不需要的时候运行查询


你也应该考虑学习PDO。它将有助于解决每个人都在谈论的sql注入问题

$result将告诉您查询的工作情况,而不是返回行的位置。首先,解决SQL注入问题。然后,考虑<代码> $$GET([类别] ] < /代码>是否会给出一个未定义的索引错误,如果<代码> > $yGET数组中的<代码> <代码>索引恰好是未定义的。MySQL也可以编写准备好的语句;你不需要PDO。当然,虽然很好。