6stPROD
19.05.2014 - 10:38
Цитата (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
19.05.2014 - 14:03
6stPROD, я вам написал как должно быть. Советую вам проанализировать каждый символ каждой строки.
_____________
Стимулятор ~yoomoney - 41001303250491
Kopipaster
19.05.2014 - 14:38
Цитата (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());
if($resource){
if(mysql_num_rows($resource) == 1){
echo "<font color='darkred'>пользователь найден</font>";
}else{
echo "<font color='darkred'>пользователя нет</font>";
}
sergeiss
19.05.2014 - 14:58
Kopipaster, вот как раз твои вопросы и говорят о том, что ты не понимаешь написанный код. Но КАК можно критиковать то, что ты не понимаешь, а??? Да еще с таким апломбом: "...много лишнего ты написал а местами и глупость...
Valick всё правильно написал, исходя из здравой логики.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Kopipaster
19.05.2014 - 15:10
ну так я открыт для конструктивной критики
глупость вот тут:
(mysql_num_rows($resource) == 1 запрос может вернуть и 2 и 3 строки и $n-строк
if($resource){ условие явно избыточное
or die(mysql_error()); помогает ловить ошибки SQL запрсов. Но оставлять его в готовом коде я считаю не правильным, дабы не показывать варнинги посетителям сайта.
Valick
19.05.2014 - 15:26
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
19.05.2014 - 15:50
Цитата (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
19.05.2014 - 16:09
Цитата |
Как у тебя может отсуствовать переменная если ты её строчкой выше задал? |
я бы не сказал что это лично у меня, но поверь на слово может
вплоть до банального "уронили мускул"
___
самое грустное, что автор топика уже далеко от нас
неуёмная жажда говнокодить - это поштишта двигатель прогресса
_____________
Стимулятор ~yoomoney - 41001303250491
Kopipaster
19.05.2014 - 16:31
Цитата (Valick @ 19.05.2014 - 16:09) |
я бы не сказал что это лично у меня, но поверь на слово может вплоть до банального "уронили мускул" |
При чём "уронили мускул"???
ты задал переменную:
$a ='';
if ($a) echo "а не проверить ли мне есть ли $a";
Valick
19.05.2014 - 16:44
Kopipaster, не тупи
переменная $resource будет
true (точнее будет содержать номер ресурса, что тоже true) только в случае успешного запроса к БД, в противном случае она будет
false. Именно это я и проверяю в условии.
_____________
Стимулятор ~yoomoney - 41001303250491
Kopipaster
19.05.2014 - 17:06
Цитата (Valick @ 19.05.2014 - 16:44) |
переменная $resource будет true только в случае успешного запроса к БД, в противном случае она будет false. Именно это я и проверяю в условии. |
Ладно могу признать такой вариант, как пример извращённой логики.
Просто в реальной жизни, если "уронили мускул" вылетит ERROR и скрипт просто не дойдёт до твоего условия. Опять же нет мускля какая хрен разница что там вернёт
Цитата (Valick @ 19.05.2014 - 15:26) |
mysql_num_rows() даст ошибку |
Если же mysql_query отработает там полюбому не будет false.
Ну да ладно, я думаю уже всем стало ясно, что в данном конкретном случае это условие избыточно. Запихнуть проверку это не ошибка, просто этого тут не нужно.
Valick
19.05.2014 - 17:16
Цитата |
просто этого тут не нужно |
Kopipaster
19.05.2014 - 17:24
Цитата (Valick @ 19.05.2014 - 17:16) |
это там обязательно |
Аргументы будут?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.