Ошибки после создания категории в Virtuemart - Webmasters.ru - RSS
http://webmasters.ru/forum/showthread.php?t=24664
SEO форум вебмастеров - Поисковые системы, оптимизация, раскрутка сайта, оптимизация и продвижение сайта в поисковых системах1744984516Elesite CMS60http://webmasters.ru/forum/images/wm/misc/rss.pngSEO форум вебмастеров Webmasters.ru
http://webmasters.ru/forum
Ошибки после создания категории в Virtuemart by Steel
http://webmasters.ru/forum/showpost.php?p=248238
Fri, 03 Feb 2012 18:20:04 GMTПри добавлении категории появились две ошибки(скрин). В остальных категориях все норм, но эта категория теперь не отображается.
Файл mysql.php
343 {
344 return mysql_num_rows( $cur ? $cur : $this->_cursor );
345 }
Файл mod_virtuemart_product_categories.php
65 if (isset($rows[$rankmin])) {
66 $html='';
67 $numLi=0;
68 foreach ($rows[$rankmin] as $menu_element) {
Что не так?
redprice-shop.ru/dlya-deteie/odejda/dlya-devochek/shapki/sharfi.html_cursor );
345 }
Файл mod_virtuemart_product_categories.php
65 if (isset($rows[$rankmin])) {
66 $html='
';
67 $numLi=0;
68 foreach ($rows[$rankmin] as $menu_element) {
Что не так?
redprice-shop.ru/dlya-deteie/odejda/dlya-devochek/shapki/sharfi.html]]>
Ошибки после создания категории в Virtuemart by Zvеr
http://webmasters.ru/forum/showpost.php?p=248279
Fri, 03 Feb 2012 19:35:16 GMTВы бы лучше сами ошибки скинули и их коды, по строкам мы не телепатаем ;) тем более что в них все нормально, если не смотреть на весь файл. Скорее всего проблема в настройках сервера, у меня обычно VirtualMart ставиться без проблем.Ошибки после создания категории в Virtuemart by Steel
http://webmasters.ru/forum/showpost.php?p=248296
Fri, 03 Feb 2012 19:57:21 GMTОк, вот вся имеющаяся инфа про ошибки на сайте:
Ошибка №1
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/p50620/www/redprice-shop.ru/libraries/joomla/database/database/mysql.php on line 344
Ошибка№2
Warning: Invalid argument supplied for foreach() in /home/p50620/www/redprice-shop.ru/modules/mod_virtuemart_product_categories/mod_virtuemart_product_categories.php on line 68
mysql.php
[PHP]_errorNum = 1;
$this->_errorMsg = 'The MySQL adapter "mysql" is not available.';
return;
}
// connect to the server
if (!($this->_resource = @mysql_connect( $host, $user, $password, true ))) {
$this->_errorNum = 2;
$this->_errorMsg = 'Could not connect to MySQL';
return;
}
// finalize initialization
parent::__construct($options);
// select the database
if ( $select ) {
$this->select($database);
}
}
/**
* Database object destructor
*
* @return boolean
* @since 1.5
*/
function __destruct()
{
$return = false;
if (is_resource($this->_resource)) {
$return = mysql_close($this->_resource);
}
return $return;
}
/**
* Test to see if the MySQL connector is available
*
* @static
* @access public
* @return boolean True on success, false otherwise.
*/
function test()
{
return (function_exists( 'mysql_connect' ));
}
/**
* Determines if the connection to the server is active.
*
* @access public
* @return boolean
* @since 1.5
*/
function connected()
{
if(is_resource($this->_resource)) {
return mysql_ping($this->_resource);
}
return false;
}
/**
* Select a database for use
*
* @access public
* @param string $database
* @return boolean True if the database has been successfully selected
* @since 1.5
*/
function select($database)
{
if ( ! $database )
{
return false;
}
if ( !mysql_select_db( $database, $this->_resource )) {
$this->_errorNum = 3;
$this->_errorMsg = 'Could not connect to database';
return false;
}
// if running mysql 5, set sql-mode to mysql40 - thereby circumventing strict mode problems
if ( strpos( $this->getVersion(), '5' ) === 0 ) {
$this->setQuery( "SET sql_mode = 'MYSQL40'" );
$this->query();
}
return true;
}
/**
* Determines UTF support
*
* @access public
* @return boolean True - UTF is supported
*/
function hasUTF()
{
$verParts = explode( '.', $this->getVersion() );
return ($verParts[0] == 5 || ($verParts[0] == 4 && $verParts[1] == 1 && (int)$verParts[2] >= 2));
}
/**
* Custom settings for UTF support
*
* @access public
*/
function setUTF()
{
mysql_query( "SET NAMES 'utf8'", $this->_resource );
}
/**
* Get a database escaped string
*
* @param string The string to be escaped
* @param boolean Optional parameter to provide extra escaping
* @return string
* @access public
* @abstract
*/
function getEscaped( $text, $extra = false )
{
$result = mysql_real_escape_string( $text, $this->_resource );
if ($extra) {
$result = addcslashes( $result, '%_' );
}
return $result;
}
/**
* Execute the query
*
* @access public
* @return mixed A database resource if successful, FALSE if not.
*/
function query()
{
if (!is_resource($this->_resource)) {
return false;
}
// Take a local copy so that we don't modify the original query and cause issues later
$sql = $this->_sql;
if ($this->_limit > 0 || $this->_offset > 0) {
$sql .= ' LIMIT ' . max($this->_offset, 0) . ', ' . max($this->_limit, 0);
}
if ($this->_debug) {
$this->_ticker++;
$this->_log[] = $sql;
}
$this->_errorNum = 0;
$this->_errorMsg = '';
$this->_cursor = mysql_query( $sql, $this->_resource );
if (!$this->_cursor)
{
$this->_errorNum = mysql_errno( $this->_resource );
$this->_errorMsg = mysql_error( $this->_resource )." SQL=$sql";
if ($this->_debug) {
JError::raiseError(500, 'JDatabaseMySQL::query: '.$this->_errorNum.' - '.$this->_errorMsg );
}
return false;
}
return $this->_cursor;
}
/**
* Description
*
* @access public
* @return int The number of affected rows in the previous operation
* @since 1.0.5
*/
function getAffectedRows()
{
return mysql_affected_rows( $this->_resource );
}
/**
* Execute a batch query
*
* @access public
* @return mixed A database resource if successful, FALSE if not.
*/
function queryBatch( $abort_on_error=true, $p_transaction_safe = false)
{
$this->_errorNum = 0;
$this->_errorMsg = '';
if ($p_transaction_safe) {
$this->_sql = rtrim($this->_sql, "; \t\r\n\0");
$si = $this->getVersion();
preg_match_all( "/(\d+)\.(\d+)\.(\d+)/i", $si, $m );
if ($m[1] >= 4) {
$this->_sql = 'START TRANSACTION;' . $this->_sql . '; COMMIT;';
} else if ($m[2] >= 23 && $m[3] >= 19) {
$this->_sql = 'BEGIN WORK;' . $this->_sql . '; COMMIT;';
} else if ($m[2] >= 23 && $m[3] >= 17) {
$this->_sql = 'BEGIN;' . $this->_sql . '; COMMIT;';
}
}
$query_split = $this->splitSql($this->_sql);
$error = 0;
foreach ($query_split as $command_line) {
$command_line = trim( $command_line );
if ($command_line != '') {
$this->_cursor = mysql_query( $command_line, $this->_resource );
if ($this->_debug) {
$this->_ticker++;
$this->_log[] = $command_line;
}
if (!$this->_cursor) {
$error = 1;
$this->_errorNum .= mysql_errno( $this->_resource ) . ' ';
$this->_errorMsg .= mysql_error( $this->_resource )." SQL=$command_line ";
if ($abort_on_error) {
return $this->_cursor;
}
}
}
}
return $error ? false : true;
}
/**
* Diagnostic function
*
* @access public
* @return string
*/
function explain()
{
$temp = $this->_sql;
$this->_sql = "EXPLAIN $this->_sql";
if (!($cur = $this->query())) {
return null;
}
$first = true;
$buffer = '';
$buffer .= '';
while ($row = mysql_fetch_assoc( $cur )) {
if ($first) {
$buffer .= '';
foreach ($row as $k=>$v) {
$buffer .= '';
}
$buffer .= '';
$first = false;
}
$buffer .= '';
foreach ($row as $k=>$v) {
$buffer .= '';
}
$buffer .= '';
}
$buffer .= '
'.$this->getQuery().'
'.$k.'
'.$v.'
';
mysql_free_result( $cur );
$this->_sql = $temp;
return $buffer;
}
/**
* Description
*
* @access public
* @return int The number of rows returned from the most recent query.
*/
function getNumRows( $cur=null )
{
return mysql_num_rows( $cur ? $cur : $this->_cursor );
}
/**
* This method loads the first field of the first row returned by the query.
*
* @access public
* @return The value returned in the query or null if the query failed.
*/
function loadResult()
{
if (!($cur = $this->query())) {
return null;
}
$ret = null;
if ($row = mysql_fetch_row( $cur )) {
$ret = $row[0];
}
mysql_free_result( $cur );
return $ret;
}
/**
* Load an array of single field results into an array
*
* @access public
*/
function loadResultArray($numinarray = 0)
{
if (!($cur = $this->query())) {
return null;
}
$array = array();
while ($row = mysql_fetch_row( $cur )) {
$array[] = $row[$numinarray];
}
mysql_free_result( $cur );
return $array;
}
/**
* Fetch a result row as an associative array
*
* @access public
* @return array
*/
function loadAssoc()
{
if (!($cur = $this->query())) {
return null;
}
$ret = null;
if ($array = mysql_fetch_assoc( $cur )) {
$ret = $array;
}
mysql_free_result( $cur );
return $ret;
}
/**
* Load a assoc list of database rows
*
* @access public
* @param string The field name of a primary key
* @return array If key is empty as sequential list of returned records.
*/
function loadAssocList( $key='' )
{
if (!($cur = $this->query())) {
return null;
}
$array = array();
while ($row = mysql_fetch_assoc( $cur )) {
if ($key) {
$array[$row[$key]] = $row;
} else {
$array[] = $row;
}
}
mysql_free_result( $cur );
return $array;
}
/**
* This global function loads the first row of a query into an object
*
* @access public
* @return object
*/
function loadObject( )
{
if (!($cur = $this->query())) {
return null;
}
$ret = null;
if ($object = mysql_fetch_object( $cur )) {
$ret = $object;
}
mysql_free_result( $cur );
return $ret;
}
/**
* Load a list of database objects
*
* If key is not empty then the returned array is indexed by the value
* the database key. Returns null if the query fails.
*
* @access public
* @param string The field name of a primary key
* @return array If key is empty as sequential list of returned records.
*/
function loadObjectList( $key='' )
{
if (!($cur = $this->query())) {
return null;
}
$array = array();
while ($row = mysql_fetch_object( $cur )) {
if ($key) {
$array[$row->$key] = $row;
} else {
$array[] = $row;
}
}
mysql_free_result( $cur );
return $array;
}
/**
* Description
*
* @access public
* @return The first row of the query.
*/
function loadRow()
{
if (!($cur = $this->query())) {
return null;
}
$ret = null;
if ($row = mysql_fetch_row( $cur )) {
$ret = $row;
}
mysql_free_result( $cur );
return $ret;
}
/**
* Load a list of database rows (numeric column indexing)
*
* @access public
* @param string The field name of a primary key
* @return array If key is empty as sequential list of returned records.
* If key is not empty then the returned array is indexed by the value
* the database key. Returns null if the query fails.
*/
function loadRowList( $key=null )
{
if (!($cur = $this->query())) {
return null;
}
$array = array();
while ($row = mysql_fetch_row( $cur )) {
if ($key !== null) {
$array[$row[$key]] = $row;
} else {
$array[] = $row;
}
}
mysql_free_result( $cur );
return $array;
}
/**
* Inserts a row into a table based on an objects properties
*
* @access public
* @param string The name of the table
* @param object An object whose properties match table fields
* @param string The name of the primary key. If provided the object property is updated.
*/
function insertObject( $table, &$object, $keyName = NULL )
{
$fmtsql = 'INSERT INTO '.$this->nameQuote($table).' ( %s ) VALUES ( %s ) ';
$fields = array();
foreach (get_object_vars( $object ) as $k => $v) {
if (is_array($v) or is_object($v) or $v === NULL) {
continue;
}
if ($k[0] == '_') { // internal field
continue;
}
$fields[] = $this->nameQuote( $k );
$values[] = $this->isQuoted( $k ) ? $this->Quote( $v ) : (int) $v;
}
$this->setQuery( sprintf( $fmtsql, implode( ",", $fields ) , implode( ",", $values ) ) );
if (!$this->query()) {
return false;
}
$id = $this->insertid();
if ($keyName && $id) {
$object->$keyName = $id;
}
return true;
}
/**
* Description
*
* @access public
* @param [type] $updateNulls
*/
function updateObject( $table, &$object, $keyName, $updateNulls=true )
{
$fmtsql = 'UPDATE '.$this->nameQuote($table).' SET %s WHERE %s';
$tmp = array();
foreach (get_object_vars( $object ) as $k => $v)
{
if( is_array($v) or is_object($v) or $k[0] == '_' ) { // internal or NA field
continue;
}
if( $k == $keyName ) { // PK not to be updated
$where = $keyName . '=' . $this->Quote( $v );
continue;
}
if ($v === null)
{
if ($updateNulls) {
$val = 'NULL';
} else {
continue;
}
} else {
$val = $this->isQuoted( $k ) ? $this->Quote( $v ) : (int) $v;
}
$tmp[] = $this->nameQuote( $k ) . '=' . $val;
}
$this->setQuery( sprintf( $fmtsql, implode( ",", $tmp ) , $where ) );
return $this->query();
}
/**
* Description
*
* @access public
*/
function insertid()
{
return mysql_insert_id( $this->_resource );
}
/**
* Description
*
* @access public
*/
function getVersion()
{
return mysql_get_server_info( $this->_resource );
}
/**
* Assumes database collation in use by sampling one text field in one table
*
* @access public
* @return string Collation in use
*/
function getCollation ()
{
if ( $this->hasUTF() ) {
$this->setQuery( 'SHOW FULL COLUMNS FROM #__content' );
$array = $this->loadAssocList();
return $array['4']['Collation'];
} else {
return "N/A (mySQL < 4.1.2)";
}
}
/**
* Description
*
* @access public
* @return array A list of all the tables in the database
*/
function getTableList()
{
$this->setQuery( 'SHOW TABLES' );
return $this->loadResultArray();
}
/**
* Shows the CREATE TABLE statement that creates the given tables
*
* @access public
* @param array|string A table name or a list of table names
* @return array A list the create SQL for the tables
*/
function getTableCreate( $tables )
{
settype($tables, 'array'); //force to array
$result = array();
foreach ($tables as $tblval) {
$this->setQuery( 'SHOW CREATE table ' . $this->getEscaped( $tblval ) );
$rows = $this->loadRowList();
foreach ($rows as $row) {
$result[$tblval] = $row[1];
}
}
return $result;
}
/**
* Retrieves information about the given tables
*
* @access public
* @param array|string A table name or a list of table names
* @param boolean Only return field types, default true
* @return array An array of fields by table
*/
function getTableFields( $tables, $typeonly = true )
{
settype($tables, 'array'); //force to array
$result = array();
foreach ($tables as $tblval)
{
$this->setQuery( 'SHOW FIELDS FROM ' . $tblval );
$fields = $this->loadObjectList();
if($typeonly)
{
foreach ($fields as $field) {
$result[$tblval][$field->Field] = preg_replace("/[(0-9)]/",'', $field->Type );
}
}
else
{
foreach ($fields as $field) {
$result[$tblval][$field->Field] = $field;
}
}
}
return $result;
}
}
mod_virtuemart_product_categories.php
0) {
do {
$child_id=$parent_id;
$parent_id=getDady($parent_id);
$rows = getKidos($parent_id);
for ($n=0; $n0);
}
$menus_table = array_reverse($menus_table);
// output
return getRowMenu ($menus_table,$rankmin, $rankmax, true, $params);
}
function getRowMenu ($rows,$rankmin, $rankmax, $firstPass=false, $params) {
global $sess ;
$class_sfx = $params->get( 'class_sfx', "" );
$Itemidmod = JRequest::getVar('Itemid', '');
if (!empty($Itemidmod)) {
$Itemidmod='&Itemid='.$Itemidmod;
}
if (isset($rows[$rankmin])) {
$html='
';
?>
Еще в самом Virtuemartе присутствует такая ошибка:
Warning: Attempt to assign property of non-object in /home/p50620/www/redprice-shop.ru/libraries/joomla/html/editor.php on line 309]]>