[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: странное явление
Invis1ble
Отрывок кода:
  ...
$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

Спустя 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
конечно smile.gif ! Я уже думал об этом...

Спустя 13 часов, 35 минут, 45 секунд (26.09.2010 - 00:52) Invis1ble написал(а):
Господа профессионалы! Ну что, есть какие-то соображения?

Спустя 15 минут, 20 секунд (26.09.2010 - 01:07) twin написал(а):
Да блин. Ну что вы все ищите профессионалов для того, чтобы они ваши каракули плана
    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 написал(а):
Я не напал... Я тихо скулю от беспомощности...
Вот ты только учишься, а туда же - классов бд насоздавать... Для какого рожна? biggrin.gif

Я дал совет дальше, чего невнимательно читал? Принт запроса в пыхадмин сунь.
$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
я знаю, что ты неравнодушен к классам smile.gif читал твои уроки, и еще холивар "ООПухоль мозга"... Как без классов делать я в курсе, просто надо же все знать, в том числе и ООП
Цитата
Я дал совет дальше, чего невнимательно читал? Принт запроса в пыхадмин сунь.
$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 написал(а):
Цитата

я знаю, что ты неравнодушен к классам

Я к ним равнодушен кстати. Это вы чето убиваетесь... Да и классы тут не причем. Просто запутаетесь сами и других запутаете на ровном месте, а потом плачете. smile.gif

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

   $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
КРАСАВЕЦ!!!! точно, как это я не углядел biggrin.gif ! Уже все перепробовал, а это не заметил laugh.gif
Все нормально теперь работает. Всем спасибо за помощь!

twin
sergeiss
+1


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

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