было так:
/*…………….*/
function connect()
{
$conn = mysql_connect(self::HOST, self::USER, self::PASS) AND
mysql_select_db(self::DB) or
die(mysql_error());
return $conn;
}
}
class Select extends MySQL
{
function select_all($COLS=array(), $table, $WHERE='')
{
#если строка запроса в массиве - преобразуем в строку из названий колонок
if(is_array($COLS))
{
$COLS = implode(',', $COLS);
$COLS = '`'.$COLS.'`';
$COLS = str_replace(',', '`, `', $COLS);
}
#если задан массив с условиями, приводим его в SQL-строку.
if(is_array($WHERE))
{
foreach($WHERE as $col => $val)
{$where[] = "`$col` = '$val'";}
$where = implode(' AND ', $where);
}
if(!isset($conn)){parent::connect();}
$query = "SELECT $COLS FROM `$table` WHERE $where";
$q = mysql_query($query);
return $q;
}
function get_res($a, $b, $c)
{
$w = self::select_all($a, $b, $c);
$sql = mysql_fetch_assoc($w);
print_r($sql);
}
}
//вызов
$COLS = array('TITLE', 'AUTOR');
$where = array(
'POSTS' => 0,
'LEVEL' => 'A');
$c = new Select();
$c->select_all('*', 'users', $where);
и что поразительно как-то работало =)
но чтоб не писать по три переменные в каждой функции решил заапгрейдить и сувать массив. работать что не удивительно перестало.
так от не работает:
/*…………….*/
function connect()
{
$conn = mysql_connect(self::HOST, self::USER, self::PASS) AND
mysql_select_db(self::DB) or
die(mysql_error());
return $conn;
}
}
class Select extends MySQL
{
function select_all($sql)
{
#если строка запроса в массиве - преобразуем в строку из названий колонок
if(is_array($sql[0]))
{
$COLS = implode(',', $sql[0]);
$COLS = '`'.$COLS.'`';
$COLS = str_replace(',', '`, `', $COLS);
}
#если задан массив с условиями, приводим его в SQL-строку.
if(is_array($sql[2]))
{
foreach($sql[2] as $col => $val)
{$where[] = "`$col` = '$val'";}
$where = implode(' AND ', $where);
}
#проверить существует ли открытое соединение, если нет - создать!
if(!isset($conn)){parent::connect();}
$query = "SELECT $COLS FROM `$table` WHERE $where";
$q = mysql_query($query);
return $q;
}
function get_res($sql)
{
$w = self::select_all($sql);
$res = mysql_fetch_assoc($w);
print_r($res);
}
}
//вызов
$sql[] = '*';
$sql[] = 'users';
$sql[] = array(
'POSTS' => 0,
'LEVEL' => 'A');
$d = new Select();
$d-> get_res($sql);
ошибка: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in…………..
то бишь не разбирает оно массив как хотелось бы….
ЗЫ сорри за код(имена переменных, стиль - для себя кожу), спасибо за помощь.