[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: мелкий вопрос н
Xes
как вы проверяете не пустой ли запрос
у меня такие куски встречаються
Цитата

$query = "SELECT * FROM `comments` WHERE `comok` <> '1'";
$sql = mysql_query($query);
if (mysql_num_rows($sql)>0)
{}


и

Цитата

$query = "SELECT * FROM `comments` WHERE `id` ='1'";
$sql = mysql_query($query);
if (mysql_num_rows($sql)>0)
{
$sqlrow = mysql_fetch_array($sql);  // - Не в цикле просто выбрать конкретное значение если оно существует.

}


По оптимальней (компактней) записать это можно





Спустя 6 минут, 31 секунда (2.05.2011 - 17:21) alex12060 написал(а):
не знаю, очень нрмальная проверка.

Спустя 3 минуты, 43 секунды (2.05.2011 - 17:25) silius написал(а):
я делаю так:
$sqlquery = mysql_query("SELECT name_cols FROM name_table WHERE name_cols = '{$var}'");
if(mysql_num_rows($sqlquery) > 0)
{
//...
}

куда ещё компактнее? :)

Спустя 16 минут, 2 секунды (2.05.2011 - 17:41) Renden написал(а):
Эм... а зачем вообще писать > 0, можно же так

if(mysql_num_rows($sqlquery))
echo "ok";
else echo "not ok";

Спустя 2 минуты, 18 секунд (2.05.2011 - 17:43) neadekvat написал(а):
Renden, для очевидности: нам нужно положительное количество записей, а не true.
Т.е. в работе разницы нет, но читается код уже по-другому.

Спустя 1 минута, 15 секунд (2.05.2011 - 17:44) Guest написал(а):
Да и в if лучше всегда ставить фигурные скобки

Спустя 2 минуты, 24 секунды (2.05.2011 - 17:47) neadekvat написал(а):
Цитата (Guest @ 2.05.2011 - 18:44)
Да и в if лучше всегда ставить фигурные скобки

Бред, это как раз ухудшает читабельность.

if (1)
echo 1;
else
echo 0;


Выглядит куда симпатичнее, чем
if (1) {
echo 1;
} else {
echo 0;
}


И уж тем более, чем
if (1) { echo1; } else { echo 0; }

Спустя 5 минут, 8 секунд (2.05.2011 - 17:52) Игорь_Vasinsky написал(а):
if (1)
{
echo 1;
}
else
{
echo 0;
}


тоже не плохо смотрится. просто зачем, если допускается опустить скобки...


Спустя 3 минуты, 55 секунд (2.05.2011 - 17:56) neadekvat написал(а):
Цитата (Игорь_Vasinsky @ 2.05.2011 - 18:52)
тоже не плохо смотрится.

Имхо, ужасно. Раздражает такой стиль. Но это, несомненно, дело вкуса.

Спустя 43 минуты, 26 секунд (2.05.2011 - 18:39) ИНСИ написал(а):
Цитата
if(mysql_num_rows($sqlquery))
echo "ok";
else echo "not ok";

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

if($data = mysql_fetch_assoc($sqlquery))
echo 'Ok';
else
echo 'No';


Цитата
Имхо, ужасно. Раздражает такой стиль. Но это, несомненно, дело вкуса.

Интересно, как ты напишешь если далее будет идти несколько строк определенных функций? Без фигурных скобок ты никак не сможешь обойтись...

Спустя 1 минута, 11 секунд (2.05.2011 - 18:40) waldicom написал(а):
Во всех постах выше так и не увидел проверку на тот факт, что сам запрос отработал верно: везде сразу используется ресурс, хотя вместо него может прийти false.

Спустя 2 минуты, 50 секунд (2.05.2011 - 18:43) neadekvat написал(а):
Цитата (velbox @ 2.05.2011 - 19:39)
Бред. Не выполняет ту проверку, которая нам нужна, в крайнем случае так:

Тут явно пропущено "не", это раз.
Проверка эта нужна. Например, чтобы вместо пустоты вывести "Записей нет". При выводе с циклом твой вариант не прокатит.

Цитата (velbox @ 2.05.2011 - 19:39)
Интересно, как ты напишешь если далее будет идти несколько строк определенный функций? Без ковычек ты никак не сможешь обойтись...

И не про них речь. Ясен пень, если больше одного оператора, то нужны скобки. Но здесь я говорил именно про стиль, где все скобки находятся на отдельной строке.

Спустя 13 минут, 2 секунды (2.05.2011 - 18:56) ИНСИ написал(а):
Цитата
Тут явно пропущено "не", это раз.

Не совсем тебя понял?

Цитата
При выводе с циклом твой вариант не прокатит.

С циклом конечно же нет. Но для примера автора, мой вариант будет работать нормально.

Спустя 2 минуты, 7 секунд (2.05.2011 - 18:58) neadekvat написал(а):
Цитата (velbox @ 2.05.2011 - 19:56)
С циклом конечно же нет. Но для примера автора, мой вариант будет работать нормально.

Логично предположить, что автор спрашивал не только про вывод одной строки.

Спустя 20 минут, 5 секунд (2.05.2011 - 19:19) ИНСИ написал(а):
neadekvat вот ты мелочный ...

Xes у тебя вполне нормальная проверка, большего для твоего примера и не надо, как итог, то вот:

if(mysql_num_rows($sql) > 0) {
while($data = mysql_fetch_assoc($sql)) {
echo $data['id'] . ' - ';
}
}
else {
echo 'No';
}

Спустя 1 минута, 41 секунда (2.05.2011 - 19:20) neadekvat написал(а):
Цитата (velbox @ 2.05.2011 - 20:19)
вот ты мелочный ...

В данном случаи моя мелочность совершенно ни при чем.
Ты сказал, что проверка - бред. А я сказал, что в случаи с циклом иного варианта нет.
И где ж тут мелочность?

Спустя 16 минут, 50 секунд (2.05.2011 - 19:37) ИНСИ написал(а):
Цитата
А я сказал, что в случаи с циклом иного варианта нет.

Все совсем не так smile.gif

Ты сказал:
Цитата
Логично предположить, что автор спрашивал не только про вывод одной строки.


Я про предположить. Я ответил прямо по вопросу автора, а предполагать - это уже другое ...

Спустя 21 минута, 2 секунды (2.05.2011 - 19:58) neadekvat написал(а):
Цитата (velbox @ 2.05.2011 - 20:37)
Я про предположить. Я ответил прямо по вопросу автора, а предполагать - это уже другое ...

Ты пропусти целый пост:
Цитата (neadekvat @ 2.05.2011 - 19:43)
Проверка эта нужна. Например, чтобы вместо пустоты вывести "Записей нет". При выводе с циклом твой вариант не прокатит.


Моя мелочность проявляется в том, что я тебе доказываю сейчас что-то. Но до этого было дополнение по делу.
Быстрый ответ:

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