GET в PHP

Ответить
Crank174RuS
Сообщения: 66
Зарегистрирован: 19.09.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
Администратор
Сообщения: 1606
Зарегистрирован: 28.12.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.09.2010
Спасибо!)
Отличный форум) Всегда выручаете)

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

Ответить