Использую mysql_result что бы вытащить данные по определенным параметрам, но если по этим параметрам не существует записи, то mysql_result выдает ошибку: Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index ** in. Никак не получатся ее убрать. В принципе эта ошибка ничему не препятствует, ее можно закрасить @ перед функцией, но все равно хотелось бы сделать все правильно. Что подскажите?
19 Янв 2013, 19:50Александр II, там функция:
[php:1:513f4acef9]
// Количество сообщений в категории
function messages_num($cat_id)
{
// Подготовка.
$theme_id = mysql_result(mysql_query("SELECT theme_id FROM themes WHERE cat_id = $cat_id"), 0);
if ($theme_id != null)
{
// Запрос.
$query = mysql_query("SELECT * FROM messages WHERE theme_id = $theme_id");
if (!$query)
die(mysql_error());
$result = mysql_num_rows($query);
}
else
{
$result = 0;
}
return $result;
}
[/php:1:513f4acef9]
Возможно там слегонца намудрил, вообщем надо как то проверить mysq_result что бы ее не выводило когда результат пустой.
что за бешеный ГКОД ????!!!!
добавлено спустя 3 минуты:
sirious,
function funcName($id)
{
if($id>0)
$sql = mysql_result(mysql_query("QUERY"),0);
if($sql>0)
return mysql_result(mysql_query("QUERY"),0);
}
// где QUERY - это соотв. запрос
[php:1:c5273bbf82]<?php
function messages_num($cat_id) {
$sql = 'SELECT COUNT(*) FROM `messages` WHERE `theme_id` = '
.'(SELECT `theme_id` FROM `themes` WHERE `cat_id` = '.$cat_id.')';
return mysql_result(mysql_query($sql), 0);
}[/php:1:c5273bbf82]
aBSuRD, прям так пихать переменную в запрос не есть хорошо )))
messages_num("SQL Inj...");
IceJOKER, заэкранирует если че. Да и вряд ли функция используется подобным образом: messages_num($_POST[...]) так что пох 
aBSuRD, если умудрился такой велосипед написать, то и дальше может всякое натворить xD
19 Янв 2013, 20:49IceJOKER, аргумент безпроигрышный конечно, не спорю
и все изобретали подобное..простительно)
Я стараюсь особо не изобретать подобные конструкции, но тут уж согласен, набыдлокодил от безысходности))
добавлено спустя 3 минуты:
IceJOKER, твой код даже не возвращает правильный результат там где возвращается результат запроса, не говоря уже о ошибке.
добавлено спустя 4 минуты:
IceJOKER, У тебя проверка $id, у меня она и так всегда больше 0. Меня интересует что сделать, что бы не выдавало ошибку если в бд нету записи в которой id = $id
Или может проще уже будет создать в таблице messages поле cat_id, и с помощью одного простенького запроса подсчитать количество сообщений в разделе? Только мне почему-то кажется что так никто не делает.