function sql($sql){
@ mysql_query($sql) or die('<h4>Не вышло выполнить <i>SQL</i> запрос <b>[ <font color="red">'.$sql.'</font> ]</b></h4>');
}
function user(){
sql("DELETE FROM `online` WHERE `vizit` < SUBTIME(NOW(), '0:05:0')");
if($_SESSION['id'] != '')
{
$id = $_SESSION['id'];
$date = date("H:i:s");
$mid = mysql_fetch_array(sql("SELECT `vizit` FROM `online` WHERE `iduser`='".(int)$id."' LIMIT `1`")); /// Здесь ошибка
if($mid['vizit'] != '')
{
sql("UPDATE `online` SET `vizit`='".$date."' WHERE `iduser`=".(int)$id."");
}
else
{
sql("INSERT INTO `online` (`vizit`, `iduser`) VALUES ('".$date."', ".(int)$id.")");
}
}
}
Спустя 2 минуты, 35 секунд (25.01.2012 - 11:13) alex12060 написал(а):
function sql($sql){
return @mysql_query($sql) or die('<h4>Не вышло выполнить <i>SQL</i> запрос <b>[ <font color="red">'.$sql.'</font> ]</b></h4>');
}
Спустя 1 минута, 5 секунд (25.01.2012 - 11:14) mid написал(а):
alex12060, не в этом дело!
Спустя 2 минуты, 54 секунды (25.01.2012 - 11:17) alex12060 написал(а):
mid
Да? В чем же?
Да? В чем же?
Спустя 3 минуты, 41 секунда (25.01.2012 - 11:21) mid написал(а):
Вот я и спрашиваю.Все запросы кроме этого
работают!
И без пользовательской пробовал делать этот sql запрос!
Нихрена.А в функции sql и возвращать ничего не надо!
SELECT `vizit`
FROM `online`
WHERE `iduser`='(int)$id'
LIMIT `1`
работают!
И без пользовательской пробовал делать этот sql запрос!
Нихрена.А в функции sql и возвращать ничего не надо!
Спустя 1 минута, 18 секунд (25.01.2012 - 11:22) alex12060 написал(а):
Цитата |
А в функции sql и возвращать ничего не надо! |
А ты проверь и потом скажи, верно ли ты думаешь или я все-же прав?
А потом я тебе кину пару ссылок на мануал.
Спустя 2 минуты, 40 секунд (25.01.2012 - 11:25) alexbel2404 написал(а):
у тебя для mysql_fetch_array функция sql должна вернуть результат, так что ставь return.
Спустя 2 минуты, 39 секунд (25.01.2012 - 11:27) mid написал(а):
alex12060, я уже проверил давно,нихрена не работает не с return ни с чем!!!Я ещё до того как сюда выложить ставил этот return чертов!
И написал что не в этом дело!
Не нужно мне ссылок я и сам прекрасно знаю про пользовательские функции,и return в частности.Ну если без него работает.Тем более что у меня только в одном запросе вернуть надо,который и не работает!Ну и просто если ввести mysql_query(запрос) тоже не рабит!
И написал что не в этом дело!
Не нужно мне ссылок я и сам прекрасно знаю про пользовательские функции,и return в частности.Ну если без него работает.Тем более что у меня только в одном запросе вернуть надо,который и не работает!Ну и просто если ввести mysql_query(запрос) тоже не рабит!
Спустя 1 минута, 12 секунд (25.01.2012 - 11:29) mid написал(а):
Конкретна с запросом что-то!
Спустя 2 минуты, 3 секунды (25.01.2012 - 11:31) mid написал(а):
$mid = mysql_fetch_array(mysql_query("SELECT `vizit` FROM `online` WHERE `iduser`='".(int)$id."' LIMIT `1`"));
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\test1.ru\subdomain\functions.php on line 24
Убедились что не функции sql дело?а?и ставил, ещё раз повторюсь, RETURN!
Спустя 2 минуты, 26 секунд (25.01.2012 - 11:33) mid написал(а):
И сразу напишу,а то наверно сидите и думаете что я чайник!База данных есть,подключение есть.Все есть!И по теории должно работать,а так хрен.Хочу заметить что остальные запросы работают!
Спустя 1 минута, 55 секунд (25.01.2012 - 11:35) alex12060 написал(а):
Окей, все равно у тебя без return работать не будет :)
И не психуй.
Ну а если уж действительно в запросе ошибка, то могу тебе предложить пару вариантов.
А вообще, я бы сделал твою функцию как миниимум такой:
Но а вообще, должно выозвращать при неудаче не строки с умиранием, а false, но это так, для дебажинга.
И не психуй.
Ну а если уж действительно в запросе ошибка, то могу тебе предложить пару вариантов.
SELECT `vizit` FROM `online` WHERE `iduser`= ".(int)$id." LIMIT 1
А вообще, я бы сделал твою функцию как миниимум такой:
function sql($sql) {
if (!empty($sql)) {
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0) {
return $res;
} else {
die('We have 0 results');
}
} else {
die('Attempt to execute empty query!');
}
}
Но а вообще, должно выозвращать при неудаче не строки с умиранием, а false, но это так, для дебажинга.
Спустя 1 минута, 8 секунд (25.01.2012 - 11:36) alexbel2404 написал(а):
может быть LIMIT 1, без обратных кавычек? в них обычно указываются название полей и таблиц.
Спустя 1 минута, 11 секунд (25.01.2012 - 11:37) alex12060 написал(а):
Цитата |
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\test1.ru\subdomain\functions.php on line 24 |
Это говорит о том, что mysql_query() вернула false - значит, ошибка или пустой результат.
Спустя 4 минуты, 47 секунд (25.01.2012 - 11:42) mid написал(а):
alex12060, я понимаю что ошибка или пустой результат.у меня запросы на удаление,редактирование,добавление..что для них нужно возвращать?а на этот запрос Mysql_query написал!ъ
Все,спс.Говорил же ошибка в запросе.И с моей функцией sql тоже рабит и без return..Но я сейчас для запросов SELECT другую функцию напишу,с RETURN!Всем спс.+1 в карму
Все,спс.Говорил же ошибка в запросе.И с моей функцией sql тоже рабит и без return..Но я сейчас для запросов SELECT другую функцию напишу,с RETURN!Всем спс.+1 в карму
Спустя 5 минут, 37 секунд (25.01.2012 - 11:48) alex12060 написал(а):
mid
А по мне, проще сделать флаг на возвращение результата в одной функции.
А по мне, проще сделать флаг на возвращение результата в одной функции.
function sql($sql, $return = false) {
# ...
if ($return)
return $res;
}
Спустя 2 часа, 16 минут, 36 секунд (25.01.2012 - 14:04) mid написал(а):
alex12060, я без флажков обошелся:
function sql($sql){
$type = explode(' ', $sql);
$type = $type['0'];
if($type == 'SELECT')
{
$ok = @mysql_fetch_array(mysql_query($sql)) or die('<h4>Не удалось выполнить <i>SQL</i> запрос [ <font color="red">'.$sql.'</font> ]</h4>');
return $ok;
}
else
{
@mysql_query($sql) or die('<h4>Не удалось выполнить <i>SQL</i> запрос [ <font color="red">'.$sql.'</font> ]</h4>');
}
}
Спустя 6 минут, 41 секунда (25.01.2012 - 14:11) inpost написал(а):
mid
Как ужасно!
Тебе же показали, как правильно... зачем лепить mysql_fetch_array, когда у тебя ошибка может быть на уровне mysql_query() ? И неправильные запросы надо логировать.
Как ужасно!
Тебе же показали, как правильно... зачем лепить mysql_fetch_array, когда у тебя ошибка может быть на уровне mysql_query() ? И неправильные запросы надо логировать.
Спустя 42 минуты, 44 секунды (25.01.2012 - 14:54) Гость_mid написал(а):
inpost,так будет правильно?
<?php
function sql($sql){
$type = explode(' ', $sql);
$type = $type['0'];
if($type == 'SELECT')
{
$mysql_Q = @mysql_query($sql) or die('<h4>Не удалось выполнить <i>SQL</i> запрос [ <font color="red">'.$sql.'</font> ]</h4>');
$ok = @mysql_fetch_array($mysql_Q);
return $ok;
}
else
{
@mysql_query($sql) or die('<h4>Не удалось выполнить <i>SQL</i> запрос [ <font color="red">'.$sql.'</font> ]</h4>');
}
}
Спустя 4 минуты, 4 секунды (25.01.2012 - 14:58) inpost написал(а):
Гость_mid
Нет, собаки лишние.
Нет, собаки лишние.
Спустя 1 минута, 6 секунд (25.01.2012 - 14:59) Guest написал(а):
А для чего вообще собаки нужны?Я просто увидел у кого-то..У винстона вроде,и начал ставить на все запросы
Спустя 44 секунды (25.01.2012 - 15:00) alex12060 написал(а):
mid
жаль, не стать тебе хорошим программистом...
жаль, не стать тебе хорошим программистом...
Спустя 1 минута, 33 секунды (25.01.2012 - 15:01) Guest написал(а):
alex12060, ну чтож теперь:)
Ты с битвы экстрасенсов?
Ты с битвы экстрасенсов?
Спустя 2 минуты, 9 секунд (25.01.2012 - 15:03) alex12060 написал(а):
Guest
А зачем быть экстрасенсом, когда тут все видно как на ладони.
Вместо всего этого чихуа-хуа можно было обойтись очень элегантной функцией, которая не будет грузить PHP зря, лишь для того, чтобы узнать, запрос на выборку или нет.
А зачем быть экстрасенсом, когда тут все видно как на ладони.
Вместо всего этого чихуа-хуа можно было обойтись очень элегантной функцией, которая не будет грузить PHP зря, лишь для того, чтобы узнать, запрос на выборку или нет.
Спустя 2 минуты, 4 секунды (25.01.2012 - 15:05) Guest написал(а):
alex12060, кому как больше нравится,правильно?)
Судить по тому,что кто-то пытается своими знаниями решить проблему мне кажется смешным:)
Ну и ладно:)У каждого свое мнение)
Судить по тому,что кто-то пытается своими знаниями решить проблему мне кажется смешным:)
Ну и ладно:)У каждого свое мнение)
Спустя 3 минуты, 6 секунд (25.01.2012 - 15:09) alex12060 написал(а):
Guest
Кому как больше нравится?
Окей, у меня больше нет вопросов.
Вот когда тебя начнут пинать за тормоза и миллиарды ошибок в проектах, за разработку которых ты будешь получать деньги, тогда вспомнишь меня
удачи.
Кому как больше нравится?
Окей, у меня больше нет вопросов.
Вот когда тебя начнут пинать за тормоза и миллиарды ошибок в проектах, за разработку которых ты будешь получать деньги, тогда вспомнишь меня
удачи.
Спустя 3 минуты, 17 секунд (25.01.2012 - 15:12) Guest написал(а):
alex12060
Да ладно тебе,я не упертый баран:)
Я просто не умею работать с флагами,поэтому прислал как я сделал,чтобы тоже проверили.Я не думаю что из-за одной функции у меня все будет тормозить
Да ладно тебе,я не упертый баран:)
Я просто не умею работать с флагами,поэтому прислал как я сделал,чтобы тоже проверили.Я не думаю что из-за одной функции у меня все будет тормозить
Спустя 35 минут, 45 секунд (25.01.2012 - 15:48) inpost написал(а):
! |
inpost |
_____________
По любому вопросу : programmer-php@mail.ru