2013-02-16 95 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