[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Является ли ошибкой запрос неизвестного id?
GET
Здравствуйте, прошу консультацию.

В скрипте такой запрос:

$stroki=mysql_query("SELECT COUNT(`id`) FROM `tab` WHERE `id`='".(int)$n."'",$a_db);
$stroki_i=mysql_fetch_row($stroki);
if ($stroki_i[0]>0)
{
$a=mysql_query("SELECT `tv` FROM `tab` WHERE `id`='".(int)$nom."' LIMIT 1",$a_db) or die ("ERROR #401(a).".mysql_error());
$a_i=mysql_fetch_assoc($a);
$su=(int)$a_i['tv'];
}


Другими словами сначала идет проверка на наличие строку, а если она есть происходит сам выбор. Место это писал давно, сейчас задался вопросом зачем проверять, когда можно тупо сразу выбрать если на выходе что-то есть кроме "0", то само собой такая строка есть. Проверил с error_reporting(E_ALL) никаких ошибок не показало, однако помню, как на форуме кто-то рекомендовал так не делать.

Вот и думаю почему? Т.е. почему бы сразу не писать запрос с выборкой поля WHERE? Просто не пойму является ли это ошибкоя для MySQL или нет.



Спустя 5 минут, 17 секунд (27.04.2011 - 09:40) inpost написал(а):
Я бы сразу писал SELECT, а проверку записи mysql_num_rows(); ,

Спустя 4 минуты, 53 секунды (27.04.2011 - 09:45) GET написал(а):
inpost
Так примерно:?

$a=mysql_query("SELECT `tv` FROM `tab` WHERE `id`='".(int)$nom."' LIMIT 1",$a_db) or die ("ERROR #401(a).".mysql_error());
$a_i=mysql_num_rows($a);
if ($a_i>0)
{
$a_i=mysql_fetch_assoc($a);
$su=(int)$a_i['tv'];
}

Спустя 2 минуты, 40 секунд (27.04.2011 - 09:48) GET написал(а):
Не совсем понимаю смысл в проверке записи...ведь если ее нет, то
$su=(int)$a_i['tv'];
будет равен "0"?

Спустя 3 минуты, 58 секунд (27.04.2011 - 09:52) inpost написал(а):
Если записей нет в таблице, то $a_i=mysql_fetch_assoc($a); - вернёт error или warning, поэтому надо проверять.

$a=mysql_query("SELECT `tv` FROM `tab` WHERE `id`='".(int)$nom."' LIMIT 1") or die ("ERROR #401(a).".mysql_error());
if(mysql_num_rows($a)) // 0 = false, не 0 = true!
{
$a_i=mysql_fetch_assoc($a);
}

Спустя 3 минуты, 15 секунд (27.04.2011 - 09:55) GET написал(а):
inpost

Ну у меня правда не возвращает ошибку. Пишет 0.! и все продолжает работать может мускул неправильно настроен на ошибки...гм..

Спустя 6 минут, 52 секунды (27.04.2011 - 10:02) inpost написал(а):
A.B.C.
Я же говорю, видимо у тебя есть другие записи в таблице. Если бы других не было, появлялась ошибка.

Спустя 1 час, 25 минут, 52 секунды (27.04.2011 - 11:28) GET написал(а):
inpost
...
понял теперь...спасибо smile.gif...действительно я затупил


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.