...
$dblink = Base::App()->db;
$query = "SELECT DISTINCT `ip`
FROM `connections`
WHERE `user_id`=49";
$result = mysql_query($query, $dblink) or die('File: ' . __FILE__ . ', line: ' . __LINE__ . ' ' . mysql_error());
while ($connection = mysql_fetch_assoc($result)) // строка 15
{
...
выдает Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\www\html\forum\private\logic\user-ban.php on line 15, причем только в отдельном случае (никакие переменные при этом не отличаются от 'успешного' случая - 100 раз уже перепроверил). Примечательно, что работает код нормально даже при варнинге (т.е. все в блоке while выполняется как и положено). Что за хрень, кто-нить может сказать?
Спустя 7 минут, 28 секунд (25.09.2010 - 09:51) phz написал(а):
У вас переменная $connection не использ. при подключении к базе? Как вариант...
Спустя 2 минуты, 50 секунд (25.09.2010 - 09:54) Invis1ble написал(а):
неа
Спустя 2 минуты, 53 секунды (25.09.2010 - 09:56) Invis1ble написал(а):
в оригинале
но я заменил значения для наглядности, причем ради интереса даже в коде подставил - проблема осталась..
$query = 'SELECT DISTINCT `ip`
FROM ' . Base::App()->config['db']['tables']['connections'] . '
WHERE `user_id`=' . $uid;
но я заменил значения для наглядности, причем ради интереса даже в коде подставил - проблема осталась..
Спустя 6 минут, 8 секунд (25.09.2010 - 10:03) Invis1ble написал(а):
Resource id #12 - это $result..
Спустя 4 минуты, 45 секунд (25.09.2010 - 10:07) Basili4 написал(а):
возможно $dblink пустой
Спустя 4 минуты, 23 секунды (25.09.2010 - 10:12) Invis1ble написал(а):
Basili4
нет, все нормально там - Resource id #6
нет, все нормально там - Resource id #6
Спустя 12 минут, 22 секунды (25.09.2010 - 10:24) Invis1ble написал(а):
можно конечно там "собаку" воткнуть, но имхо - это ламерский подход..
Хотелось бы понять причину, очень надеюсь на помощь более опытных товарищей
Хотелось бы понять причину, очень надеюсь на помощь более опытных товарищей
Спустя 15 минут, 51 секунда (25.09.2010 - 10:40) waldicom написал(а):
Может у Вас второе соединение открывается с базой... Я такое уже видел: открываются два соединения, и в во всех функциях постоянно используется идентификатор соединения. Если не используется, то берется подключение по умочанию, а его не было
Спустя 9 минут, 45 секунд (25.09.2010 - 10:50) Invis1ble написал(а):
waldicom
исключено...
исключено...
public function GetDb()
{
if ($this->_db == NULL)
{
$link = mysql_connect
(
Base::App()->config['db']['host'],
Base::App()->config['db']['user'],
Base::App()->config['db']['pass']
) or die(mysql_error());
mysql_select_db(Base::App()->config['db']['dbname'], $link) or die(mysql_error());
mysql_query('SET NAMES ' . Base::App()->config['db']['encoding'], $link) or die(mysql_error());
$this->_db = $link;
}
return $this->_db;
}
Спустя 17 минут, 57 секунд (25.09.2010 - 11:08) Гость_Dingo написал(а):
Invis1ble это точно файл user-ban.php??
Спустя 8 минут, 36 секунд (25.09.2010 - 11:16) Invis1ble написал(а):
Гость_Dingo
конечно ! Я уже думал об этом...
конечно ! Я уже думал об этом...
Спустя 13 часов, 35 минут, 45 секунд (26.09.2010 - 00:52) Invis1ble написал(а):
Господа профессионалы! Ну что, есть какие-то соображения?
Спустя 15 минут, 20 секунд (26.09.2010 - 01:07) twin написал(а):
Да блин. Ну что вы все ищите профессионалов для того, чтобы они ваши каракули плана
Ну пойди в обратную сторону.
Раз уверен, что не ресурс - значит FALSE. Иначе die сработало бы.
А почему? Упрости все, выкинь навароты, посмотри где косяк.
Просто создай подключение руками, сделай принт запроса, пробей его в пыхадмине...
потом суй свои бестолковые классы. Если так уж дороги.
public function GetDb()разбирали...
{
if ($this->_db == NULL)
{
$link = mysql_connect..// дальше еще хуже
Ну пойди в обратную сторону.
Раз уверен, что не ресурс - значит FALSE. Иначе die сработало бы.
А почему? Упрости все, выкинь навароты, посмотри где косяк.
Просто создай подключение руками, сделай принт запроса, пробей его в пыхадмине...
потом суй свои бестолковые классы. Если так уж дороги.
Спустя 10 минут, 48 секунд (26.09.2010 - 01:18) Invis1ble написал(а):
twin
да ладно, че ты напал.. Если б я был такой прошареный, то вряд ли спрашивал на этом форуме. Я ж только учусь, помощи ищу...
да ладно, че ты напал.. Если б я был такой прошареный, то вряд ли спрашивал на этом форуме. Я ж только учусь, помощи ищу...
Спустя 17 минут, 20 секунд (26.09.2010 - 01:35) Invis1ble написал(а):
twin
Я и так уже все упростил, куда уж проще:
Я и так уже все упростил, куда уж проще:
$dblink = mysql_connect('localhost', 'admin', 'admin');Что еще тут можно упростить?
mysql_select_db('forum', $dblink) or die(mysql_error());
$query = 'SELECT DISTINCT `ip`
FROM connections
WHERE `user_id`=49';
$result = mysql_query($query, $dblink) or die(mysql_error());
while ($connection = mysql_fetch_assoc($result))
{
...
}
mysql_close($dblink);
Спустя 19 минут, 23 секунды (26.09.2010 - 01:55) Invis1ble написал(а):
В пыхадмине все нормально срабатывает, да и здесь тоже. Только почему варнинг выскакивает - непонятно
Спустя 3 минуты, 16 секунд (26.09.2010 - 01:58) twin написал(а):
Я не напал... Я тихо скулю от беспомощности...
Вот ты только учишься, а туда же - классов бд насоздавать... Для какого рожна?
Я дал совет дальше, чего невнимательно читал? Принт запроса в пыхадмин сунь.
поменяй на
Вот ты только учишься, а туда же - классов бд насоздавать... Для какого рожна?
Я дал совет дальше, чего невнимательно читал? Принт запроса в пыхадмин сунь.
$result = mysql_query($query, $dblink) or die(mysql_error());
поменяй на
print ($query, $dblink) or die(mysql_error());
Спустя 11 минут, 50 секунд (26.09.2010 - 02:10) Invis1ble написал(а):
twin
я знаю, что ты неравнодушен к классам читал твои уроки, и еще холивар "ООПухоль мозга"... Как без классов делать я в курсе, просто надо же все знать, в том числе и ООП
я знаю, что ты неравнодушен к классам читал твои уроки, и еще холивар "ООПухоль мозга"... Как без классов делать я в курсе, просто надо же все знать, в том числе и ООП
Цитата |
Я дал совет дальше, чего невнимательно читал? Принт запроса в пыхадмин сунь. $result = mysql_query($query, $dblink) or die(mysql_error()); поменяй на print ($query, $dblink) or die(mysql_error()); |
читал внимательно, сделал
print ($query) и сунул в пыхадмин - все нормально там - выводит одну строку, как и должно
Спустя 6 минут, 10 секунд (26.09.2010 - 02:16) twin написал(а):
Цитата |
я знаю, что ты неравнодушен к классам |
Я к ним равнодушен кстати. Это вы чето убиваетесь... Да и классы тут не причем. Просто запутаетесь сами и других запутаете на ровном месте, а потом плачете.
Ну поехали дальше дебажить, раз такая хрень.
$dblink = mysql_connect('localhost', 'admin', 'admin');
echo is_resource($dblink) ? 'гут' : 'Ага!';
Спустя 6 минут, 3 секунды (26.09.2010 - 02:22) Invis1ble написал(а):
twin
гут
Спустя 1 минута, 36 секунд (26.09.2010 - 02:24) twin написал(а):
дамп дай. мистика..
Спустя 8 минут, 27 секунд (26.09.2010 - 02:32) Invis1ble написал(а):
twin
или всей базы надо?
или всей базы надо?
Спустя 15 минут, 7 секунд (26.09.2010 - 02:47) sergeiss написал(а):
А ты нигде внутри цикла не переопределяешь $result? Если там не очень много строк - то покажи тело цикла.
Спустя 6 минут, 56 секунд (26.09.2010 - 02:54) Invis1ble написал(а):
sergeiss
КРАСАВЕЦ!!!! точно, как это я не углядел ! Уже все перепробовал, а это не заметил
Все нормально теперь работает. Всем спасибо за помощь!
twin
sergeiss
+1
КРАСАВЕЦ!!!! точно, как это я не углядел ! Уже все перепробовал, а это не заметил
Все нормально теперь работает. Всем спасибо за помощь!
twin
sergeiss
+1
_____________
Профессиональная разработка на заказ
Я на GitHub | второй профиль