[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Warning: mysql_fetch_array(): supplied argument is
DarkGuy
Доброй ночи!
гляньте свежим взглядом
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/htdoc/system/global.inc.php on line 10

global.inc.php
$mysql = new mysql();
$mysql->get_query_simple("SELECT * FROM `".BCRM."mods` WHERE `switch` != '0'");
while ($row=mysql_fetch_array($sql)){require_once '../mods/'.$row['name_mods'].'/'.$row['name_mods'].'.php';}


class
class mysql{
function __construct(){
global $db_conf;
$this->resource=$this->connect($db_conf['host'],$db_conf['username'],$db_conf['password'],$db_conf['database']);
}



function connect($host,$lgn,$pwd,$db){
$resource=mysql_connect($host,$lgn,$pwd);



if(!$resource) die('Cannot connect to MySQL Database');
mysql_select_db($db) or die('Cannot select Database');


mysql_query('SET NAMES '.$db_conf['encoding'].'');
return $resource;
}
function get_query_simple($query)
{ $sql = mysql_query($query) or die(mysql_error());}


}




Спустя 3 минуты, 9 секунд (2.08.2012 - 01:08) inpost написал(а):
Область видимости переменных. $sql не видна.

Спустя 4 часа, 53 минуты, 11 секунд (2.08.2012 - 06:01) kamanch написал(а):
function get_query_simple($query)
{
$sql = mysql_query($query) or die(mysql_error());}
return $sql; // забыл return
}


while ($row=mysql_fetch_array($mysql)).... // не ту переменную подсунул, надо $mysql

Спустя 7 часов, 4 минуты, 7 секунд (2.08.2012 - 13:05) DarkGuy написал(а):
Цитата (kamanch @ 2.08.2012 - 04:01)
function get_query_simple($query)
{
$sql = mysql_query($query) or die(mysql_error());}
return $sql; // забыл return
}


while ($row=mysql_fetch_array($mysql)).... // не ту переменную подсунул, надо $mysql

return $sql; ясно
а почему $mysql?

Спустя 2 минуты, 20 секунд (2.08.2012 - 13:08) inpost написал(а):
DarkGuy
Он ошибся. smile.gif
Вообще одним return твой скрипт не заработает. Потому что return что делает, и самое важное - КУДА!

Спустя 7 секунд (2.08.2012 - 13:08) DarkLynx написал(а):
Цитата (kamanch @ 2.08.2012 - 04:01)
function get_query_simple($query)
{
  $sql = mysql_query($query) or die(mysql_error());}
  return  $sql; // забыл return
}


while ($row=mysql_fetch_array($mysql)).... // не ту переменную подсунул, надо $mysql

$mysql в данном случае объект класса, а подставить надо результат выполненого запроса.


$result = $mysql->get_query_simple("SELECT * FROM `".BCRM."mods` WHERE `switch` != '0'");
while ($row=mysql_fetch_array($result)){require_once '../mods/'.$row['name_mods'].'/'.$row['name_mods'].'.php';}

Спустя 1 минута, 22 секунды (2.08.2012 - 13:09) inpost написал(а):
DarkLynx
Чего вы оба стали Дарками? Неужели всё из-за печенек?

Спустя 26 секунд (2.08.2012 - 13:10) DarkLynx написал(а):
А и не используйте mysql_fetch_array.. Используйте
mysql_fetch_assoc

Спустя 1 минута, 33 секунды (2.08.2012 - 13:11) DarkLynx написал(а):
Цитата (inpost @ 2.08.2012 - 11:09)
DarkLynx
Чего вы оба стали Дарками? Неужели всё из-за печенек?

Всю свою сознательную жизнь в интернете я DarkLynx, от чего пошло уже и не помню =)

Спустя 1 минута, 33 секунды (2.08.2012 - 13:13) DarkGuy написал(а):
Цитата (DarkLynx @ 2.08.2012 - 11:11)
Цитата (inpost @ 2.08.2012 - 11:09)
DarkLynx
Чего вы оба стали Дарками? Неужели всё из-за печенек?

Всю свою сознательную жизнь в интернете я DarkLynx, от чего пошло уже и не помню =)

аналогично.

Спустя 2 минуты, 53 секунды (2.08.2012 - 13:16) DarkGuy написал(а):
Цитата (DarkGuy @ 2.08.2012 - 11:13)
Цитата (DarkLynx @ 2.08.2012 - 11:11)
Цитата (inpost @ 2.08.2012 - 11:09)
DarkLynx
Чего вы оба стали Дарками? Неужели всё из-за печенек?

Всю свою сознательную жизнь в интернете я DarkLynx, от чего пошло уже и не помню =)

аналогично.

Просто Guy был занят, а остальные цвета пахнут расизмом.

Спустя 2 минуты, 25 секунд (2.08.2012 - 13:18) DarkGuy написал(а):
Цитата (DarkLynx @ 2.08.2012 - 11:10)
А и не используйте mysql_fetch_array.. Используйте
mysql_fetch_assoc

почему?

Спустя 1 минута, 40 секунд (2.08.2012 - 13:20) DarkLynx написал(а):
Цитата (DarkGuy @ 2.08.2012 - 11:18)
Цитата (DarkLynx @ 2.08.2012 - 11:10)
А и не используйте mysql_fetch_array.. Используйте
mysql_fetch_assoc

почему?

mysql_fetch_array возвращает 2 массива. Один ассоциативный а второй обычный (если честно хз как он называется)
mysql_fetch_assoc возвращает только ассоциативный массив.

Думаю дальше понятно что 1 лучше чем 2 из которых используется все равно 1..

Спустя 2 минуты, 54 секунды (2.08.2012 - 13:23) inpost написал(а):
DarkGuy
Так это ж не цвет, это оттенок - светлый или тёмный. Надо же быть добрым, называться LightGuy smile.gif

Спустя 7 минут, 37 секунд (2.08.2012 - 13:30) DarkGuy написал(а):
Цитата (inpost @ 2.08.2012 - 11:23)
DarkGuy
Так это ж не цвет, это оттенок - светлый или тёмный. Надо же быть добрым, называться LightGuy smile.gif

И вообще почему темный не может быть добрым?

Спустя 47 минут, 59 секунд (2.08.2012 - 14:18) DarkGuy написал(а):
Цитата (DarkLynx @ 2.08.2012 - 11:20)
Цитата (DarkGuy @ 2.08.2012 - 11:18)
Цитата (DarkLynx @ 2.08.2012 - 11:10)
А и не используйте mysql_fetch_array.. Используйте
mysql_fetch_assoc

почему?

mysql_fetch_array возвращает 2 массива. Один ассоциативный а второй обычный (если честно хз как он называется)
mysql_fetch_assoc возвращает только ассоциативный массив.

Думаю дальше понятно что 1 лучше чем 2 из которых используется все равно 1..

Еще возник один вопрос,
add_mods.php
$dir = '../mods/';
if ($dh = opendir($dir)){
while($files[] = readdir($dh));
foreach($files as $file)
{$file=htmlspecialchars($file);
if($file !== '.' && $file !== '..'){$mysql = new mysql();
$total = $mysql->get_query_total("SELECT COUNT(*) FROM `".BCRM."mods` WHERE `name_mods` = '".$file."'");
if($total = 0){$mysql->get_query_simple("insert into `".BCRM."mods` (`name_mods`) values('".$file."')");}}}

closedir($dh);}




и



function get_query_simple($query)
{ $sql = mysql_query($query) or die(mysql_error());
return $sql;}



function get_query_total($query)
{$sql = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_row($sql);
$total = $row[0];
return $total;
}

а как здесь быть?

Спустя 2 минуты, 42 секунды (2.08.2012 - 14:21) inpost написал(а):
DarkGuy
fetch_row + fetch_assoc = fetch_array. То есть и то и другое возвращает. Надо возвращать по существу то, что тебе надо.
Вместо твоего fetch_row, потом return total, можно сразу return mysql_result(0,$res); (или наоборот, $res,0) smile.gif

Спустя 9 минут, 59 секунд (2.08.2012 - 14:31) DarkGuy написал(а):
Цитата (inpost @ 2.08.2012 - 12:21)
DarkGuy
fetch_row + fetch_assoc = fetch_array. То есть и то и другое возвращает. Надо возвращать по существу то, что тебе надо.
Вместо твоего fetch_row, потом return total, можно сразу return mysql_result(0,$res); (или наоборот, $res,0) :)

т.е.
function get_query_total($query)
{$sql = mysql_query($query) or die(mysql_error());
$row = return mysql_result(0,$res)
}


и

if($res = 0){$mysql->get_query_simple("insert into `".BCRM."mods` (`name_mods`) values('".$file."')");}}}


или

if($row= 0){$mysql->get_query_simple("insert into `".BCRM."mods` (`name_mods`) values('".$file."')");}}}


так?=)

Спустя 2 минуты, 26 секунд (2.08.2012 - 14:33) inpost написал(а):
вообще поменяй местами 0 и $res в условии if.

Спустя 16 минут, 41 секунда (2.08.2012 - 14:50) DarkGuy написал(а):
if(0 = $res){}
готово, но какая разница?

Спустя 10 минут, 32 секунды (2.08.2012 - 15:01) DarkGuy написал(а):
Цитата (inpost @ 2.08.2012 - 12:33)
вообще поменяй местами 0 и $res в условии if.


Если

$row =  return mysql_result(0,$res);

Parse error: syntax error, unexpected T_RETURN in /home/www/htdoc/connections/connection_mysql.php on line 48

Если
return mysql_result(0,$res);

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/www/htdoc/connections/connection_mysql.php on line 48

if(0 = $res){}
то же ошибка

if('0' = $res){}
то же ошибка

Спустя 28 минут, 54 секунды (2.08.2012 - 15:30) DarkLynx написал(а):
return mysql_result(0,$res);

return mysql_result($res, 0);

Спустя 6 минут, 51 секунда (2.08.2012 - 15:36) DarkGuy написал(а):
Цитата (DarkLynx @ 2.08.2012 - 13:30)
return mysql_result(0,$res);

return mysql_result($res, 0);

побывал,
не помогло
Parse error: syntax error, unexpected T_RETURN in /home/www/htdoc/connections/connection_mysql.php on line 48

return mysql_result($res,0);

Спустя 27 минут, 14 секунд (2.08.2012 - 16:04) DarkLynx написал(а):
connection_mysql.php on line 48

скинь 48ю строчку этого файла....

и что за
$row =  return mysql_result(0,$res);

просто
return mysql_result(0,$res);

Спустя 6 минут, 15 секунд (2.08.2012 - 16:10) DarkGuy написал(а):
Цитата (DarkLynx @ 2.08.2012 - 14:04)
connection_mysql.php on line 48

скинь 48ю строчку этого файла....

и что за
$row =  return mysql_result(0,$res);

просто
return mysql_result(0,$res);

return mysql_result($res,0); 48 строка

вся



function get_query_total($query)
{$sql = mysql_query($query) or die(mysql_error());
return mysql_result($res,0);
}

Спустя 4 минуты, 19 секунд (2.08.2012 - 16:14) inpost написал(а):
а всё потому, что = - присвоение, а == - сравнение. Нет?

Спустя 26 минут, 17 секунд (2.08.2012 - 16:40) DarkGuy написал(а):
Цитата (inpost @ 2.08.2012 - 14:14)
а всё потому, что = - присвоение, а == - сравнение. Нет?

Ты прав=)
исправил на

if($res == 0)


но все равно

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/www/htdoc/connections/connection_mysql.php on line 48

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/www/htdoc/connections/connection_mysql.php on line 48

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/www/htdoc/connections/connection_mysql.php on line 48

Спустя 19 минут, 36 секунд (2.08.2012 - 17:00) inpost написал(а):
Ты читал мануал по поводу mysql_result ? Что за аргументы передаются первым и вторым номером? Потому что у тебя там ошибка!

Спустя 46 секунд (2.08.2012 - 17:01) DarkLynx написал(а):
function get_query_total($query)
{$sql = mysql_query($query) or die(mysql_error());
return mysql_result($sql,0);
}


Сразу не обратил внимания даже..

Спустя 6 минут, 17 секунд (2.08.2012 - 17:07) inpost написал(а):
DarkLynx
Ещё стиля не хватает:
function get_query_total($query) {
$sql = mysql_query($query) or die(mysql_error());
return mysql_result($sql,0);
}

Только весь этот скрипт ни о чём, функция пустая, это же всё лучше написать без функций, а просто в 2 строки.

Спустя 8 минут, 35 секунд (2.08.2012 - 17:16) DarkLynx написал(а):
Цитата (inpost @ 2.08.2012 - 15:07)
DarkLynx
Ещё стиля не хватает:
<pre class="sh_sourceCode" rel="php"><span class="sh_keyword">function</span> <span class="sh_function">get_query_total</span><span class="sh_symbol">(</span><span class="sh_variable">$query</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span>
    <span class="sh_variable">$sql</span> <span class="sh_symbol">=</span> <span class="sh_function">mysql_query</span><span class="sh_symbol">(</span><span class="sh_variable">$query</span><span class="sh_symbol">)</span> <span class="sh_keyword">or</span> <span class="sh_function">die</span><span class="sh_symbol">(</span><span class="sh_function">mysql_error</span><span class="sh_symbol">());</span>
    <span class="sh_control">return</span> <span class="sh_function">mysql_result</span><span class="sh_symbol">(</span><span class="sh_variable">$sql</span><span class="sh_symbol">,</span><span class="sh_number">0</span><span class="sh_symbol">);</span>
<span class="sh_cbracket">}</span></pre>
Только весь этот скрипт ни о чём, функция пустая, это же всё лучше написать без функций, а просто в 2 строки.

Не могу на форуме писать как привык =)
Читал что не особо правильно делать отступы в виде табуляций, а нужно пробелами, но мне куда удобнее табами..
А на форуме нельзя поставить таб, вот я и забиваю на это, если код копирую не с нотпада.

А по поводу функции, полностью согласен.. Но хочется так человеку, пусть делает.

Встречал классы, где что бы задать свойство класса используют специально написанный на это метод. Заключается он в тупом присвоении. И это все вместо того что бы сделать его паблик и присвоить где надо напрямую..

Спустя 3 минуты, 48 секунд (2.08.2012 - 17:19) inpost написал(а):
И это называется говнокод с использованием Классов, потом говнокод с использованием ООП... и так постоянно smile.gif
Быстрый ответ:

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