2016-02-15 25 views
0

所以我有一個選擇在我的PHP文件裏面的窗體;獲取選擇的html5變量到一個PHP中,並將其用在mysql查詢中作爲限制?

<select name="zxclimit" id="zxclimit"> 
    <option value="300">300</option> 
    <option value="280">280</option> 
    <option value="260">260</option> 
    <option value="220">220</option> 
    <option value="200">200</option> 
    <option value="180">180</option> 
    <option value="160">160</option> 
    <option value="120">120</option> 
    <option value="100">100</option> 
    <option value="70">70</option> 
    <option value="50">50</option> 
    <option value="40">40</option> 
    <option value="20">20</option> 
    </select> 

雖然在我的其他單獨的PHP文件與查詢;

$limit = intval($_GET['zxclimit']); 
$result = mysql_query("SELECT * FROM token_all Order By Rand() Limit '$limit' "); 

每次運行此查詢時,似乎它都不會在查詢中獲得變量$ limit。但是如果我使用像100這樣的常量限制,它將會完美運行。真的想從這裏得到一些幫助,知道我在兩個代碼中做錯了什麼。提前致謝!

+0

您使用的是

'?請擴展代碼,這個小部分看起來並不錯。 – ROAL

+0

@ROAL我忘了說我正在使用帖子,我修改了限制內的請求以及請求。 – Sync

+3

你必須在查詢中刪除單引號:'LIMIT $ limit' – fusion3k

回答

1

表單是使用「get」還是「post」方法?

您應該可以使用$ _REQUEST變量訪問它,無論它是發佈還是獲取。

$ _REQUEST - 默認包含$ _GET,$ _POST和$ _COOKIE的內容 的關聯數組。

所以嘗試:

$limit = intval($_REQUEST['zxclimit']); 
$result = mysql_query("SELECT * FROM token_all Order By Rand() Limit '$limit' "); 

如果您的形式是使用後,你可以這樣做:

$limit = intval($_POST['zxclimit']); 

也請不要使用mysql_擴展名(已被棄用,在PHP 7移除)。 最好切換到mysqli_或pdo

+0

我沒有指定'method',所以發現* GET *請求時發現了最新的chrome(49.xx),所以沒有方法的表單應該默認爲* GET *(在chrome atleast中) – SidOfc

+0

@zachu我做了試試這個,它仍然不會運行。是的,我使用後,我用它的要求。但如果它是恆定數字的限制,它的工作原理。我想知道爲什麼它不會從單獨的php中選擇值。 – Sync

+0

請寄出var_dump($ _ POST)的結果; – zachu

相關問題