在SQL中选择问题

时间:2013-01-05 22:49:30

标签: php mysql sql select

当我尝试从表格(模型)中提取“marca”(marca包含nokia,samsung等)的所有数据时,我遇到了问题

所以我尝试使用$_GET但是没有用。我可以用$_GET id从表中选择一行,但这对我没有帮助,因为我想从链接中选择类别,所以sql注入像localhost/article.php?marca=nokia(必须只出现在诺基亚手机上)我认为是最好的方法。

现在我正在使用代码,它显示我最近5个帖子按ID分类,但它无法正常工作,因为它显示诺基亚,三星,HTC,诺基亚,其他,诺基亚。

<?php require 'SQL.php';

$id = isset($_GET['id'])?(int)$_GET['id']:0; // daca $_GET['id'] exista, folosestel ca      integer, altfel trucul sentinel, de obicei id incepe cu 1, deci 0 va functiona

if ($id!=0): 
// Vom procesa daca exista doar 1 inregisrare in baza de date
$query = 'SELECT marca FROM modele WHERE id='. $id .' LIMIT 1'; // voi folosi 1,    nemaiavand nevoie de alti pasi pentru lookup in sql
else:$query = 'SELECT marca FROM modele ORDER BY id DESC LIMIT 5'; 
endif;

$result = mysql_query($query);
// now loop through the results
while($linie = mysql_fetch_array($result))
{
    // le voi utiliza dupa bunul plac
    echo ''.$linie["marca"].'<br />';
} 
?>

要正常工作它必须告诉我只有诺基亚,诺基亚,诺基亚缺少什么?

如果是另一种方式,请告诉我!

1 个答案:

答案 0 :(得分:1)

不,使用以下查询:

   SELECT marca FROM modele ORDER BY id DESC LIMIT 5

您正在显示marca中应添加modele条款的所有where,例如

   SELECT marca FROM modele 
   where marca = 'nokia'
   ORDER BY id DESC LIMIT 5

您可以使用marca从GET中检索$_GET["marca"]名称。 http://www.w3schools.com/php/php_get.asp

还阅读有关sql注入的信息,因为我知道你会到达那里。