Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Пустой результат в mysql_result
Сообщения
sirious

Использую 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

пример своего кода засвети, который выдаёт такое.

19 Янв 2013, 19:51
sirious

Александр 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 что бы ее не выводило когда результат пустой.


__________
посл.ред. 19 Янв 2013, 23:06; всего 1 раз 19 Янв 2013, 20:08
IceJOKER

что за бешеный ГКОД ????!!!!
добавлено спустя 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 - это соотв. запрос

19 Янв 2013, 20:34
aBSuRD

[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]

19 Янв 2013, 20:34
IceJOKER

aBSuRD, прям так пихать переменную в запрос не есть хорошо )))


messages_num("SQL Inj...");

19 Янв 2013, 20:37
aBSuRD

IceJOKER, заэкранирует если че. Да и вряд ли функция используется подобным образом: messages_num($_POST[...]) так что пох

19 Янв 2013, 20:47
IceJOKER

aBSuRD, если умудрился такой велосипед написать, то и дальше может всякое натворить xD

19 Янв 2013, 20:49
aBSuRD

IceJOKER, аргумент безпроигрышный конечно, не спорю  и все изобретали подобное..простительно)

19 Янв 2013, 21:08
sirious

Я стараюсь особо не изобретать подобные конструкции, но тут уж согласен, набыдлокодил от безысходности))
добавлено спустя 3 минуты:
IceJOKER, твой код даже не возвращает правильный результат там где возвращается результат запроса, не говоря уже о ошибке.
добавлено спустя 4 минуты:
IceJOKER, У тебя проверка $id, у меня она и так всегда больше 0. Меня интересует что сделать, что бы не выдавало ошибку если в бд нету записи в которой id = $id

Или может проще уже будет создать в таблице messages поле cat_id, и с помощью одного простенького запроса подсчитать количество сообщений в разделе? Только мне почему-то кажется что так никто не делает.

19 Янв 2013, 22:59
Ответить на тему