2013-02-16 93 views
0
$num=$_POST['data']; 
$no = (int) $num; 
$sql = "select * from uploads where id > '$no'" 

上面的查询不工作properly.It正在显示的值低于第i觉得跟conversion.somebody问题,请帮忙解决这个问题比较操作SQL查询用PHP

+2

除非你复制它,我不知道'$ _post'将工作;它应该是'$ _POST'。 – 2013-02-16 12:03:21

+0

我不明白。 – user2067403 2013-02-16 12:03:30

+0

@ user2067403你的代码的第二行,它应该是'$ no'而不是'Sno' – gopi1410 2013-02-16 12:04:08

回答

0

你有Sno = ...,它应该是$no = ...。这是一个错字。

然后,查询中的数字不需要撇号,所以不要在此上下文中使用它们。

你也有$_post而不是$_POST - 这是另一个问题,variables in PHP are case-sensitive

+0

这是我正在说的... – soyuka 2013-02-16 12:04:46

-1
$no = (int) $_POST['data']; //wrong variable declaration ? 
$sql = "select * from uploads where id > $no"; 

尝试这个。

$_post换成$_POST

一个变量,而不是两个

+1

尝试解释他出错的地方,以及他需要研究哪些领域以充分了解问题空间。 – Sam152 2013-02-16 12:03:20

+0

我的回答 – soyuka 2013-02-16 12:05:35

1

您在值的周围有撇号,因此这些值将作为字符串进行比较,而不是数字。例如,字符串值10小于字符串值2

删除撇号:

$sql = "select * from uploads where id > $no"; 
+0

我如何删除它? – user2067403 2013-02-16 12:07:11

+0

@ user2067403:从字符串中删除撇号。就像我展示的一样。 – Guffa 2013-02-16 12:08:33

+0

@ user2067403 - 他做到了; '''是问题所在。还要注意,'$ no =(int)'';'(as,'$ _POST ['data']'是空的)会在你的查询中给你'0'。仅供参考。 – 2013-02-16 12:09:11

0

与此

$sql = "select * from uploads where id > ".$no; 

尝试,并把$ _ POST,而不是$ _ POST

+0

那我的...我发正确答案第一对.. ?? – Gautam3164 2013-02-16 12:12:48

1

试试这个代码,而不是:

if (empty($_POST['data'])){ 
    // show error message 
    echo "No data received"; 
    // use a default values 
    $num = 0; 
} 
else 
    $num=$_POST['data']; 

$no = intval($num); 
$sql = "select * from uploads where id > $no"; 

尝试使用intval,而不是铸造到int

+0

你在'else'中有一个错字。 – 2013-02-16 12:07:30

+0

谢谢:)我已经修复了它 – 2013-02-16 12:08:02

+0

请记住,没有大括号的简写形式可能会让非程序员和初学者感到困惑。 ':)' – 2013-02-16 12:11:20