Вопрос по php+sql

12
I
На сайте с 27.03.2007
Offline
14
889

Уважаемые гуру, помогите справиться с такой проблемой:

Есть такой код:

function execute ($query)

{

global $lnk;

$db_host = "localhost";

$db_user = "xxx";

$db_pass = "xxx";

$db_name = "xxx";

}

$lnk = mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());

mysql_select_db($db_name) or die(mysql_error());

$result = mysql_query($query) or die(mysql_error());

return $result;

$result = execute("select * from news where example=$example order by atata desc limit $atata,.SOME_CONST);

Так вот если есть поле example, которое соответствует переменной $example, то все гладко, а если нет то выдает ошибку вида:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by atata desc limit 0,3' at line 1

Как избежать данной проблемы?

Спасибо за комментарии.:)

Первый сезон футбольного менеджера (http://sportblr.com/forum/index.php?c=7) спешите есть свободные команды, новая концепция.
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

Попробуйте:

$result = execute("select * from news where example='$example' order by atata desc limit $atata,.SOME_CONST);

хотя наверное я не совсем понял суть проблемки....

P.S. вообще такие функции меня убивают, ну на кой чёрт каждый раз подрубаться к мускулю.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
I
На сайте с 27.03.2007
Offline
14
#2

Извините, наверное и правда мало входящих данных.

Так вот суть в том, что при нажатии на ссылку на подраздел сайта должны загружаться новости тематики этого подраздела (для этого в новостях сравнивается id подраздела со значениями полей, в которых содержаться id подразделов (example=$example)). Если же в подразделе еще нет новостей, то выдает приведенную выше ошибку.

dRiveR.dLL
На сайте с 25.09.2006
Offline
79
#3
inrises:
$result = execute("select * from news where example=$example order by atata desc limit $atata,.SOME_CONST);

А к чему эта точка?

I
На сайте с 27.03.2007
Offline
14
#4

Это выше по скрипту

define(SOME_CONST, 7);

dRiveR.dLL
На сайте с 25.09.2006
Offline
79
#5
inrises:
Это выше по скрипту
define(SOME_CONST, 7);

Ну это понятно, но к чему там конкатенация ?! Попробуйте без точки.

И, кстати, кавычку закройте:

$result = execute("select * from news where example=$example order by atata desc limit $atata,SOME_CONST");
I
На сайте с 27.03.2007
Offline
14
#6

Без точки:

Parse error: syntax error, unexpected T_STRING и т.д. где в какой строке

inrises добавил 14.05.2008 в 22:37

dRiveR.dLL:

И, кстати, ковычку закройте:

$result = execute("select * from news where example=$example order by atata desc limit $atata,SOME_CONST");

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SOME_CONST' at line 1

peterpro
На сайте с 14.11.2007
Offline
35
#7

Знаете, вам надо срочно курить мануалы по SQL, а заодно и по корректному PHP.

I
На сайте с 27.03.2007
Offline
14
#8
peterpro:
Знаете, вам надо срочно курить мануалы по SQL, а заодно и по корректному PHP.

оффтоп.

может посоветуете по теме чего?

Спасибо.

dRiveR.dLL
На сайте с 25.09.2006
Offline
79
#9

Извиняюсь, но кажется, все таки, вот так:

$result = execute("select * from news where example=$example order by atata desc limit $atata,".SOME_CONST);
I
На сайте с 27.03.2007
Offline
14
#10

Неа...

повторюсь, если новости этой категории есть по скрипт работает, но если нет то выдает ошибку.

как изменить конструкцию так, чтобы проверять вначале есть ли в этой таблице новости данной категории, и, при условии, что есть далее их выводить.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий