Тема: 1064 ошибка

Ошибка:

MySQL error in file: /engine/modules/files/newfiles.php at line 14
Error Number: 1064
The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 5
SQL query:

SELECT `id`, `title`, `version`, `alt_name` FROM `dle_` WHERE `approve` = '0' AND `date` < '2014-08-28 13:41:39' ORDER BY `date` DESC ,

Код:

<?php 

if (!defined ( 'DATALIFEENGINE'))
die ( "Hacking attempt!");
include ENGINE_DIR .'/data/'.$files .'_config_global.php';
$newfiles = dle_cache ( "new".$modulname );
if (!$newfiles) {
$thisdate = date ( "Y-m-d H:i:s",(time () +($config ['date_adjust'] * 60)) );
include_once ENGINE_DIR .'/data/'.$modulname .'_config.php';
$db->query ( "SELECT `id`,
 `title`,
 `version`, 
 `alt_name`
 FROM `".PREFIX ."_".$module_dbtitle."` WHERE `approve` = '0' AND `date` < '{$thisdate}'  ORDER BY `date` DESC ,".$filesConfig ['numbernewfiles'] ."");
while ( $row = $db->get_row () ) {
if (strlen ( $row ['title'] ) >25)
$title = substr ( $row ['title'],0,25 ) ." ...";
else
$title = $row ['title'];
$ctitle = $row ['id'];
if ($config ['allow_alt_url'] == "yes") {
if ($filesConfig ['nica_rewrite'] == "1")
$linkfile = "<a class=\"newfiles\" title=\"".stripslashes ( $row ['title'] ) ." ".$row ['version'] ."\"  href=\"".$config ['http_home_url'] .$modulname ."/".$row ['id'] ."_".$row ['alt_name'] .".html\">".stripslashes ( $title ) ." ".$row ['version'] ."</a>";
else
$linkfile = "<a class=\"newfiles\" title=\"".stripslashes ( $row ['title'] ) ." ".$row ['version'] ."\"  href=\"".$config ['http_home_url'] .$modulname ."/file".$row ['id'] .".html\">".stripslashes ( $title ) ." ".$row ['version'] ."</a>";
}else
$linkfile = "<a class=\"newfiles\" title=\"".stripslashes ( $row ['title'] ) ." ".$row ['version'] ."\"  href=\"".$config ['http_home_url'] ."index.php?do=".$modulname ."&op=download&fileid=".$row ['id'] ."\">".stripslashes ( $title ) ." ".$row ['version'] ."</a>";
$newfiles .= "&raquo; ".$linkfile ."<br />";
}
$db->free ();
create_cache ( "new".$modulname,$newfiles );
}
?>

Как исправить?

2

Re: 1064 ошибка

Вероятно ошибка в конце запроса, после "DESC" стоит запятая и затем значение переменной $filesConfig ['numbernewfiles']. Проверьте значение переменной $filesConfig ['numbernewfiles'].

3

Re: 1064 ошибка

Не могу найти, где она определяется...

4

Re: 1064 ошибка

Я убрал эту переменную вовсе, но ошибка не изменилась... а по идее же должна была?

5

Re: 1064 ошибка

Нашел эту переменную в двух местах:

1 код:

$content .= "\$filesConfig['numbernewfiles']           = ".intval ( $_POST ['numbernewfiles'] ) .";\n\n";

2 код:

<td style=\"padding: 4px;\">{$lang_files['config_43']}<a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang_files['config_44']}', this, event, '250px')\">[?]</a></td>
                <td style=\"padding: 4px;\"><select class=\"select\" name=\"numbertopfiles\">
                <option value=\"{$filesConfig ['numbertopfiles']}\" selected>{$filesConfig ['numbertopfiles']}</option>
                    <option value=\"3\">3</option>

6

Re: 1064 ошибка

После DESC стоит запятая - значит сортировка должна идти еще по какому-то полю, которое указано в переменной $filesConfig ['numbernewfiles']. Если переменная $filesConfig ['numbernewfiles'] пустая, то запятая после DESC вызывает ошибку. Можно попробовать убрать запятую и переменную $filesConfig ['numbernewfiles'], если не понятно где эта переменная формируется.

7

Re: 1064 ошибка

Убрал переменную с запятой, стал выдавать 1146 ошибку.

MySQL error in file: /engine/modules/files/newfiles.php at line 14
Error Number: 1146
The Error returned was:
Table 'u650970019_admin.dle_' doesn't exist
SQL query:

SELECT `id`, `title`, `version`, `alt_name` FROM `dle_` WHERE `approve` = '0' AND `date` < '2014-08-29 09:33:06' ORDER BY `date` DESC LIMIT 0

8

Re: 1064 ошибка

Ошибка говорит, что таблица dle_ не существует. Имя таблицы после префикса не стоит, значит ошибка в конфигурации или в самом скрипте.