2013-02-26 7 views
0

У меня есть следующий запрос -MySQL/PHP Заказывайте Где

$query = mysql_query("SELECT * FROM test where admin = 'Yes' order by name = '$_GET[name]' DESC"); 

while($row = mysql_fetch_array($query)) 
{ 
    $id.=$row[id]; 
} 

echo $id; 

Я хочу список идентификаторов, начиная с идентификатором [название] $ _GET, однако он возвращает список с именем запуска из строка внизу? Есть идеи?

Большое спасибо.

+2

Пожалуйста, укажите набор данных и какой результат вы получаете/то, что вы хотите. Ваш код также уязвим для SQL-инъекций. Ваш API устарел. Повсюду бедный, плохой код. – Kermit

+2

Woah! Вам необходимо серьезно проверить безопасность вашего кода. Вы не только используете устаревшую библиотеку ('mysql_ *'), но ваш код серьезно уязвим для SQL-инъекций! – BenM

ответ

1
  1. использовать массив
  2. Вы должны использовать кавычки colums имена

.

$query = mysql_query("SELECT * FROM test where admin = 'Yes' order by name = '$_GET[name]' DESC"); 

$ids = array(); 
while($row = mysql_fetch_array($query)) 
{ 
    $ids[] =$row['id']; 
} 

// Your IDs are now in an array which is easier to work with 
print_r($ids); 

FYI, you shouldn't use mysql_* functions in new code. Они больше не поддерживаются and are officially deprecated. См. red box? Узнайте о prepared statements вместо этого и используйте PDO или MySQLi - this article поможет вам решить, какой. Если вы выберете PDO, here is a good tutorial.

Вы также широко открыты для SQL injections

Смежные вопросы