GET в PHP

Crank174RuS
Сообщения: 66
Зарегистрирован: 19 сен 2010
Всем привет)
Возникла такая проблема:
Делаю скрипт каторый выводит новости.

В mysql есть таблица под названием news
В этой таблице присутствую поля: id, tema,avtor,text, categ (категория)

Скрипт для вывода новости с категории программы:

Код: Выделить всё

<?php
include "config.php"; //подключаю БД

$_GET['categ'] = intval($_GET['categ']);
$categ      = $_GET['categ'];
   
$my_cat     = mysql_query('SELECT * FROM `news` where categ=\' '.$categ.'\' ');

 while($row=mysql_fetch_array($my_cat)){
 

echo '
   '.$row['tema'].' <br />
   '.$row['avtor'].' <br />
   '.$row['categ'].' <br />
   '.$row['text'].' <br />
';
}
?>


Когда пишу в адресную строку http://сайт/news.php?categ=programm
То от не выводит мне новость которая находится в категории программы (programm)
А когда вместо

Код: Выделить всё

$my_cat     = mysql_query('SELECT * FROM `news` where categ=\' '.$categ.'\' ');

Пишу

Код: Выделить всё

$my_cat     = mysql_query('SELECT * FROM `news` where categ=\'programm\' ');

То выводит, в чем ошибка?

Аватара пользователя
Distructor
Администратор
Сообщения: 1604
Зарегистрирован: 28 дек 2009
во первых

Код: Выделить всё

$_GET['categ'] = intval($_GET['categ']);
$categ      = $_GET['categ'];
получается ты строку категории переводишь в число (в данном случае $categ будет равно 0). а должно быть что-то вроде

Код: Выделить всё

$categ = htmlspecialchars( trim( $_GET['categ'] ), ENT_QUOTES );


твое

Код: Выделить всё

categ=\' '.$categ.'\'
в коде преобразовывается в

Код: Выделить всё

categ=' program'
т.е. лишний пробел, из-за которого и не находит

замени запрос на

Код: Выделить всё

$my_cat     = mysql_query("SELECT * FROM `news` where categ='$categ' ");

Crank174RuS
Сообщения: 66
Зарегистрирован: 19 сен 2010
Спасибо!)
Отличный форум) Всегда выручаете)

Аватара пользователя
Distructor
Администратор
Сообщения: 1604
Зарегистрирован: 28 дек 2009
забыл сразу флаг ENT_QUOTES указать. поправил в сообщении выше


Вернуться в «Другие вопросы»