2013-05-10 84 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