[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция проверки на значения
Страницы: 1, 2
6stPROD
Цитата (sergeiss @ 19.05.2014 - 01:44)
Цитата (Kopipaster @ 19.05.2014 - 01:37)
$result = mysql_query("SELECT `user_id` FROM `p_orders` WHERE `user_id`= '$user_id'");
$result = mysql_num_rows($result);

Категорически не рекомендую вот так вот "экономить" переменные. Если дальше понадобится выбрать данные этого запроса, то это уже не получится сделать - потому что переменная $result будет перезаписана во второй строке.

Этот вариант помог, большое спасибо!
Valick
6stPROD, я вам написал как должно быть. Советую вам проанализировать каждый символ каждой строки.


_____________
Стимулятор ~yoomoney - 41001303250491
Kopipaster
Цитата (Valick @ 19.05.2014 - 14:03)
6stPROD, я вам написал как должно быть. Советую вам проанализировать каждый символ каждой строки.

много лишнего ты написал а местами и глупость:
$user_id = (int)$_SESSION['id'];
$query = "SELECT `user_id` FROM `p_orders` WHERE `user_id`= '$user_id'";
$resource = mysql_query($query) or die(mysql_error());// зачем выводить пользователю ошибку? да для отладки нужно но потом or die(mysql_error()) лучше стирать либо коментировать

if($resource){// для чего лишнее условие?
if(mysql_num_rows($resource) == 1){// тогда уж mysql_num_rows($resource) > 0
echo "<font color='darkred'>пользователь найден</font>";
}else{
echo "<font color='darkred'>пользователя нет</font>";
}
sergeiss
Kopipaster, вот как раз твои вопросы и говорят о том, что ты не понимаешь написанный код. Но КАК можно критиковать то, что ты не понимаешь, а??? Да еще с таким апломбом: "...много лишнего ты написал а местами и глупость... Valick всё правильно написал, исходя из здравой логики.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Kopipaster
ну так я открыт для конструктивной критики
глупость вот тут:
(mysql_num_rows($resource) == 1 запрос может вернуть и 2 и 3 строки и $n-строк

if($resource){ условие явно избыточное

or die(mysql_error()); помогает ловить ошибки SQL запрсов. Но оставлять его в готовом коде я считаю не правильным, дабы не показывать варнинги посетителям сайта.
Valick
Kopipaster, если запрос вернёт 2 и 3 строки и $n-строк, то значит у вас большие проблемы с БД, так как user_id просто обязано быть уникальным.

Цитата
if($resource){ условие явно избыточное

вовсе нет, при отсутсвии ресурса, mysql_num_rows() даст ошибку

Цитата
or die(mysql_error()); помогает ловить ошибки SQL запрсов. Но оставлять его в готовом коде я считаю не правильным, дабы не показывать варнинги посетителям сайта.

1) человек учиться "складывать 2+2", до готового кода ему ой как далеко, да и тебе тоже.
2) если грамотно писать код, то mysql_error() просто нечего будет выводить.


_____________
Стимулятор ~yoomoney - 41001303250491
Kopipaster
Цитата (Valick @ 19.05.2014 - 15:26)
если запрос вернёт 2 и 3 строки и $n-строк, то значит у вас большие проблемы с БД, так как user_id просто обязано быть уникальным.

У него `user_id`это не уникальное поле это лишь номер юзера в заказе. Соответственно если у юзера имеется $n заказов то запрос вернёт $n строк.
Цитата (Valick @ 19.05.2014 - 15:26)
вовсе нет, при отсутсвии ресурса, mysql_num_rows() даст ошибку

Как у тебя может отсуствовать переменная если ты её строчкой выше задал?
Я бы ещё понял такую проверку если переменная задаётся в одном файле, а используется в другом. Но задать переменную в одной строке а уже в следующей проверять её наличие - МАРАЗМ.

Цитата (Valick @ 19.05.2014 - 15:26)
1) человек учиться "складывать 2+2", до готового кода ему ой как далеко, да и тебе тоже.

Я бы сказал нам всем.

Цитата (Valick @ 19.05.2014 - 15:26)
2) если грамотно писать код, то mysql_error() просто нечего будет выводить.

Вот под этим пожалуй подпишусь.
Valick
Цитата
Как у тебя может отсуствовать переменная если ты её строчкой выше задал?

я бы не сказал что это лично у меня, но поверь на слово может
вплоть до банального "уронили мускул"
___
самое грустное, что автор топика уже далеко от нас
неуёмная жажда говнокодить - это поштишта двигатель прогресса smile.gif

_____________
Стимулятор ~yoomoney - 41001303250491
Kopipaster
Цитата (Valick @ 19.05.2014 - 16:09)
я бы не сказал что это лично у меня, но поверь на слово может
вплоть до банального "уронили мускул"

При чём "уронили мускул"???
ты задал переменную:
$a =''; //задал переменную
if ($a) echo "а не проверить ли мне есть ли $a";// и следующая строка идёт проверка есть ли переменная
Valick
Kopipaster, не тупи smile.gif
переменная $resource будет true (точнее будет содержать номер ресурса, что тоже true) только в случае успешного запроса к БД, в противном случае она будет false. Именно это я и проверяю в условии.

_____________
Стимулятор ~yoomoney - 41001303250491
Kopipaster
Цитата (Valick @ 19.05.2014 - 16:44)
переменная $resource будет true только в случае успешного запроса к БД, в противном случае она будет false. Именно это я и проверяю в условии.

Ладно могу признать такой вариант, как пример извращённой логики.
Просто в реальной жизни, если "уронили мускул" вылетит ERROR и скрипт просто не дойдёт до твоего условия. Опять же нет мускля какая хрен разница что там вернёт
Цитата (Valick @ 19.05.2014 - 15:26)
mysql_num_rows() даст ошибку

biggrin.gif biggrin.gif biggrin.gif
Если же mysql_query отработает там полюбому не будет false.

Ну да ладно, я думаю уже всем стало ясно, что в данном конкретном случае это условие избыточно. Запихнуть проверку это не ошибка, просто этого тут не нужно.
Valick
Цитата
просто этого тут не нужно

это там обязательно


_____________
Стимулятор ~yoomoney - 41001303250491
Kopipaster
Цитата (Valick @ 19.05.2014 - 17:16)
это там обязательно

Аргументы будут?
Быстрый ответ:

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