гляньте свежим взглядом
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) while ($row=mysql_fetch_array($mysql)).... // не ту переменную подсунул, надо $mysql |
return $sql; ясно
а почему $mysql?
Спустя 2 минуты, 20 секунд (2.08.2012 - 13:08) inpost написал(а):
DarkGuy
Он ошибся.
Вообще одним return твой скрипт не заработает. Потому что return что делает, и самое важное - КУДА!
Он ошибся.
Вообще одним return твой скрипт не заработает. Потому что return что делает, и самое важное - КУДА!
Спустя 7 секунд (2.08.2012 - 13:08) DarkLynx написал(а):
Цитата (kamanch @ 2.08.2012 - 04:01) |
function get_query_simple($query) 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
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) | ||
Всю свою сознательную жизнь в интернете я DarkLynx, от чего пошло уже и не помню =) |
аналогично.
Спустя 2 минуты, 53 секунды (2.08.2012 - 13:16) DarkGuy написал(а):
Цитата (DarkGuy @ 2.08.2012 - 11:13) | ||||
аналогично. |
Просто 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) | ||
почему? |
mysql_fetch_array возвращает 2 массива. Один ассоциативный а второй обычный (если честно хз как он называется)
mysql_fetch_assoc возвращает только ассоциативный массив.
Думаю дальше понятно что 1 лучше чем 2 из которых используется все равно 1..
Спустя 2 минуты, 54 секунды (2.08.2012 - 13:23) inpost написал(а):
DarkGuy
Так это ж не цвет, это оттенок - светлый или тёмный. Надо же быть добрым, называться LightGuy
Так это ж не цвет, это оттенок - светлый или тёмный. Надо же быть добрым, называться LightGuy
Спустя 7 минут, 37 секунд (2.08.2012 - 13:30) DarkGuy написал(а):
Цитата (inpost @ 2.08.2012 - 11:23) |
DarkGuy Так это ж не цвет, это оттенок - светлый или тёмный. Надо же быть добрым, называться LightGuy |
И вообще почему темный не может быть добрым?
Спустя 47 минут, 59 секунд (2.08.2012 - 14:18) DarkGuy написал(а):
Цитата (DarkLynx @ 2.08.2012 - 11:20) | ||||
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)
fetch_row + fetch_assoc = fetch_array. То есть и то и другое возвращает. Надо возвращать по существу то, что тебе надо.
Вместо твоего fetch_row, потом return total, можно сразу return mysql_result(0,$res); (или наоборот, $res,0)
Спустя 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);
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ю строчку этого файла....
и что за
просто
скинь 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
Ещё стиля не хватает:
Только весь этот скрипт ни о чём, функция пустая, это же всё лучше написать без функций, а просто в 2 строки.
Ещё стиля не хватает:
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 написал(а):
И это называется говнокод с использованием Классов, потом говнокод с использованием ООП... и так постоянно