Call to a member function fetch_assoc

toxass

Постоялец
Регистрация
24 Июл 2007
Сообщения
114
Реакции
15
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors',true);
ini_set('html_errors',true);
ini_set('error_reporting',E_ALL ^ E_NOTICE);
 
 
define('DATALIFEENGINE', "news");
require_once "engine/classes/mysqli.class.php";
include_once "engine/data/dbconfig.php";
unset($db);
$mysqli = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME);
$mysqli->set_charset(COLLATE);
$oResult = $mysqli->query('SELECT `title`,`category`,`id`,`alt_name`, DATE_FORMAT(`date`, "%e.%m.%Y") as `pub_date` FROM '.PREFIX.'_post WHERE DATE(`date`) <= NOW()');
$sFile = 'file.txt';
$sUrl = 'http://'.$_SERVER['HTTP_HOST'].'/main/';
$sTmp = '';
while($rgRow = $oResult->fetch_assoc()){
    $l = $mysqli->query('SELECT `alt_name` FROM '.PREFIX.'_category WHERE id = '.$rgRow['category']);
    $l_res = $l->fetch_assoc();
   
 
    $sTmp .= $rgRow['title'].'|'.str_replace('/main/', '/'.$l_res['alt_name'].'/' ,$sUrl).$rgRow['id'].'-'.$rgRow['alt_name'].'.html|'.$rgRow['pub_date']."|\n";
}
file_put_contents($sFile, $sTmp);
echo 'Процесс завершен';
 
?>


Идея в том, что скрипт берет из DLE базы необходимую инфу и кладет ее в файл, но после смены хостинга, решил перевести сайт на UTF-8, и тут выскочила эта проблема. Хелп плз.
 
Синтаксис запроса проверь...
echo $mysqli->error;
 
если нет mysqli

PHP:
error_reporting(E_ALL);
ini_set('display_errors',true);
ini_set('html_errors',true);
ini_set('error_reporting',E_ALL ^ E_NOTICE);
 
define('DATALIFEENGINE', "news");
 
include_once "engine/classes/mysql.class.php";
include_once "engine/data/dbconfig.php";
 
$oResult = $db->query('SELECT `title`,`category`,`id`,`alt_name`, DATE_FORMAT(`date`, "%e.%m.%Y") as `pub_date` FROM '.PREFIX.'_post WHERE DATE(`date`) <= NOW()');
$sFile = 'file.txt';
$sUrl = 'http://'.$_SERVER['HTTP_HOST'].'/main/';
$sTmp = '';
while($rgRow = mysql_fetch_assoc($oResult)){
    $l = $db->query('SELECT `alt_name` FROM '.PREFIX.'_category WHERE id IN('.$rgRow['category'].')');
 
    $l_res=mysql_fetch_assoc($l);
    $sTmp .= $rgRow['title'].'|'.str_replace('/main/', '/'.$l_res['alt_name'].'/' ,$sUrl).$rgRow['id'].'-'.$rgRow['alt_name'].'.html|'.$rgRow['pub_date']."|\n";
}
file_put_contents($sFile, $sTmp);
echo 'Процесс завершен';
 
Не помогло.

Код:
MySQL Error!
------------------------
 
The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
 
Error Number:
1064
 
SELECT `alt_name` FROM dle_category WHERE id IN()
 
можно формат категории проверять
PHP:
// после while($rgRow = mysql_fetch_assoc($oResult)){
if(!preg_match('/\d/',$rgRow['category'])) continue;

кстати, а что отдает
PHP:
// $sTmp = '';
print_r(mysql_fetch_assoc($oResult)); exit;
 
Назад
Сверху