2013-05-10 86 views
0

這裏就是我試圖做排序MySQL表

{ 
{ 
    $sql="SELECT ISO_id,gdp,population,country_name,gold,silver,bronze,total FROM Country ORDER BY (46034/($_GET["x"]*bronze)+($_GET["y]*silver]+(z*gold)*(gdp/population))"; // chosen to order my html table with the number the medals each country won at the olympics 
    } 
    } 

但是我不知道如何包含語句中的$ _GET

+0

有一個SQL注入可能與您的查詢。改用[準備好的陳述](http://bobby-tables.com/php.html)。 – 2013-05-10 14:44:00

+0

您應該爲此準備好一個語句,並綁定$ _GET值。 – andrewsi 2013-05-10 14:44:05

+0

你必須在ORDER BY語句後加上一個列名,我不知道你在這裏試着做 – Nagasaki 2013-05-10 14:45:29

回答

-1

只是加括號

{{$ SQL = 「SELECT ISO_id,GDP,人口,COUNTRY_NAME,金,銀,銅,總FROM國家ORDER BY(46034 /({$ _ GET [」 ×「]} *青銅)+({$ _ GET [「y]} * silver] +(z * gold)*(gdp/population))」; //選擇我的html表格,每個國家在奧運會上獲得的獎牌數量}}

+0

這個答案仍然有SQL注入的可能。不要這樣做! – 2013-05-10 14:45:22

+0

,這絕對沒有意義? – user2359244 2013-05-10 14:45:48

+0

我知道有SQL注入可能,但我正在嘗試做這個練習編碼我想知道如何包括$ _GET語句和數字在mysql語句 – user2359244 2013-05-10 14:46:42

0

要使用$ _GET參數在當前的語句,可以使用:

$sql=" 
    SELECT ISO_id,gdp,population,country_name,gold,silver,bronze,total 
    FROM Country 
    ORDER BY (46034/(" . $_GET["x"] . "*bronze)+(" . $_GET["y"] . "*silver]+(z*gold)*(gdp/population))"; 

但是,請注意,這讓你對SQL注入攻擊開放,所以你應該考慮在使用它之前,過濾你的輸入這樣的查詢。有關詳細信息,請參見How to prevent SQL injection in PHP?

另請注意,您的ORDER BY條款似乎存在長崎在評論中所述的錯誤。您應該訂購一個專欄名稱。

+0

多數民衆贊成什麼即時嘗試做即時嘗試按這個公式排序表 – user2359244 2013-05-10 14:53:28

0
$sql="SELECT 
    ISO_id, 
    gdp, 
    population, 
    country_name, 
    gold, 
    silver, 
    bronze, 
    total, 
    (46034/(" . $_GET["x"] . "*bronze)+(" . $_GET["y"] . "*silver]+(z*gold)*(gdp/population)) as number_medals 
FROM Country 
ORDER BY number_medals"; 

小心SQL注入....

0

它的一個好主意,先使得到變量放到一個獨立的變量,然後從那裏它清理乾淨,因爲把獲得的變量直接進入SQL語句的葉子你打開sql注入。

說的URL看起來是這樣的。 http://www.mysite.com?ID=4 得到你要去的ID $ _GET [ID]或者是安全的$ id = $ _GET [ID],並從這裏做一些工作來清除ID中的任何不良數據。 http://php.net/manual/en/function.mysql-real-escape-string.php 這將幫助你出了一點,但仍是其沒有100%的節約。

我記得當我試圖弄清楚這一點,我不想看看替代品,我只是想讓它工作,但一個建議的詞將是使用PDO準備的語句。起初他們有點棘手,但是這個指南很不錯,並且會很容易地解釋如何做到這一點。 PDO讓你從sql注入安全。

PDO Prepared Statement Tutorial