SQL查询没有结果

问题描述:

我使用php制作一个目录,目前所有的流派都出现在页面的顶部,但是当我点击它们时,它们不会返回任何结果,而且我也不能找出原因。SQL查询没有结果

这是我当前的代码:

<?php 
session_start(); 
include "connect.php"; 
include "header.php"; 

if (isset($_GET['ID'])) { 
    $cat_id = $_GET['Genre']; 
    $q = "SELECT ID, Name, Genre FROM Products WHERE Genre=" 
      .mysqli_real_escape_string($_SESSION['conn'],$cat_id).";"; 

    $result = mysqli_query($_SESSION['conn'],$q); 


    echo "<div>"; 
    while ($row = mysqli_fetch_row($result)){ 
     echo "<p><a href='product.php?id=$row[ID]'>$row[Name]</a></p>"; 
    } 
    echo "</div>"; 
    mysqli_free_result($result); 
} 

include "footer.php"; 
?> 

这是我第一次使用PHP,所以我的大概真的赤裸裸的问题对不起!

+0

尝试呼应您查询,并在phpMyAdmin或任何其他数据库运行浏览器,就像HeidiSQL一样。看看你是否得到了一些结果 – Ovidiu 2012-02-29 11:44:34

+0

是否有理由在查询中使用'escape''$ cat_id'?你必须检查cat_id是否为数字('$ cat-id = intval($ _ GET ['Id'])')。并在你的'echo'行中检查语法[ID]'不带引号:'echo“

$row['Name']

'; – teran 2012-02-29 11:51:54
+0

'$ cat_id'不是数字..它等于流派,我可以改变它来做什么接受一个单词而不是一个数字? – 2012-02-29 12:02:19

试试这个,你用过“;”这是不需要和流派是字符串

$q = "SELECT ID, Name, Genre FROM Products WHERE Genre='" 
      .mysqli_real_escape_string($_SESSION['conn'],$cat_id)."'"; 
+0

仍然没有工作..不管我改变它什么都没有。 – 2012-02-29 11:47:58

+0

好吧,尝试回声您的查询运行它到phpmyadmin,看看是什么 – pkachhia 2012-02-29 11:50:50

+0

把它放到phpmyadmin中,它工作,只是返回了一个空的结果 – 2012-02-29 11:53:08

你应该检查你的查询是否与某种mysqli错误检查失败。

if (! $result = mysqli_query($_SESSION['conn'],$q)) 
{ 
    printf("Error: %s\n", $mysqli->error); 

} 

,除非你永远不知道为什么结果不显示

+0

试过,它没有失败!只是仍然空虚。 – 2012-02-29 11:50:49

重写while循环与这一个: -

while ($row = mysqli_fetch_row($result)){ 
    echo "<p><a href='product.php?id=".$row['ID']."'>".$row['Name']."</a></p>"; 
+0

仍然不起作用..我在想它的东西真的很愚蠢,就像我打电话给错误的领域或什么的.. – 2012-02-29 11:49:59