Ïîñëå ïåðååçäà, ïðè ïîïûòêå ïðîñìîòðà ôîòîê èç ðàçäåëà ñëó÷àéíûå ôîòî, ïîëó÷àþ îøèáêó
QuoteWhile executing query "SELECT * FROM galpictures WHERE approved = 'YES' ORDER BY RAND() LIMIT -1" on 0
mySQL error: 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 '-1' at line 1
Èíôîðìàöèÿ î õîñòèíãå:
Quote==========================
VERSION INFO :
------------------
PHP version: 4.4.6 - OK
------------------
mySQL version: 4.1.22-log
------------------
Coppermine version: 1.4.13(stable)
==========================
Module: GD
------------------
GD Version: bundled (2.0.28 compatible)
FreeType Support: 1
FreeType Linkage: with freetype
T1Lib Support: 1
GIF Read Support: 1
GIF Create Support: 1
JPG Support: 1
PNG Support: 1
WBMP Support: 1
XBM Support: 1
JIS-mapped Japanese Font Support:
==========================
Module: mysql
------------------
MySQL Supportenabled
Active Persistent Links 0
Active Links 1
Client API version 5.0.37
MYSQL_MODULE_TYPE none
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE no value
MYSQL_LIBS no value
==========================
Module: zlib
------------------
ZLib Support enabled
Compiled Version 1.2.3
Linked Version 1.2.3
==========================
Server restrictions (safe mode)?
------------------
Directive | Local Value | Master Value
safe_mode | On | On
safe_mode_exec_dir | /sata1/home/:/usr/bin/:/usr/local/bin/ | ./
safe_mode_gid | Off | Off
safe_mode_include_dir | /sata1/home/:.:/usr/local/share/pear/ | ./:/usr/local/share/pear/
safe_mode_exec_dir | /sata1/home/:/usr/bin/:/usr/local/bin/ | ./
sql.safe_mode | Off | Off
disable_functions | no value | no value
file_uploads | On | On
include_path | ./:/usr/local/share/pear/ | ./:/usr/local/share/pear/
open_basedir | /tmp/:/tmp:/sata1/home/users/loganclub/ | no value
==========================
email
------------------
Directive | Local Value | Master Value
sendmail_from | no value | no value
sendmail_path | /usr/sbin/sendmail -t -i | /usr/sbin/sendmail -t -i
SMTP | localhost | localhost
smtp_port | 25 | 25
==========================
Size and Time
------------------
Directive | Local Value | Master Value
max_execution_time | 180 | 600
max_input_time | 60 | 60
upload_max_filesize | 5M | 5M
post_max_size | 6M | 6M
==========================
Page generated in 2.637 seconds - 21 queries in 1.257 seconds - Album set : ; Meta set: ;
Àé íèä õåëï !!!! :(
À íà ñòàðîì õîñòå êàêàÿ âåðñèÿ MySQl áûëà?
Âîçìîæíî ÷òî ïðîáëåìà èìåííî â ýòîì.
На старом была вроде 4.0.18-log. Но то, что другая - 100%.
Вопрос в другом - как запустить на этой версии ? где ковырнуть ?
êîâûðíè êîä, ïðîáëåìà â òîì, ÷òî çàïðîñ ïûòàåòñÿ âûáðàòü -1 çàïèñü, âìåñòî 1.
ïðàâèëüíûé çàïðîñ SELECT * FROM galpictures WHERE approved = 'YES' ORDER BY RAND() LIMIT 1
У меня есть глюк в модуле случайного вывода - выдает ошибку. ругается на LIMIT -1
Ó ìåíÿ 5é è âñå ðàáîòàåò.
Ïîñìîòðè îòêóäà áåðåòñÿ ýòîò ìèíóñ è óáåðè åãî.
Что значит убери ? Я ж код сам не правил - если у меня он появляется - значит у всех должен. Или я не прав ?
Ìîæåò è äîëæåí, íî ÿ ãàëåðåþ âñåãäà òîëüêî âðó÷íóþ îáíîâëÿþ è ìîãó ïðîïóñòèòü íåêðèòè÷íûå èçìåíåíèÿ â êîäå ðàçíûõ âåðñèé, ïîòîìó ó ìåíÿ ìîæåò è ðàáîòàåò, à ó òåáÿ íåò.
Ñîáñòâåííî ÿ íà÷àë íå ñ ýòîãî, à ñ ïðåäëîæåíèÿ ïîñìîòðåòü îêòóäà îí âîîáùå áåðåòñÿ!
Ðàçáåðåìñÿ ñ ïðè÷èíîé, íàéäåì êàê óñòðàíèòü ñëåäñòâèÿ.
Îòêóäà îí áåðåòñÿ ìû ñêàçàòü ìîæåò.
 ôàéëå:
functions.inc.php
Åñòü òàêàÿ ôóíêöèÿ:
function get_pic_data
function get_pic_data($album, &$count, &$album_name, $limit1=-1, $limit2=-1, $set_caption = true)
 íåé ïî óìîë÷àíèþ ïåðåìåííîé $limit2 ïðèñâàèâàåòñÿ çíà÷åíèå -1
Äàëåå ýòî çíà÷åíèå ïîïàäàåò â ñòðîêó:
$limit .= ($limit2 != -1) ? ' ,'. $limit2 : '';
×òî îçíà÷àåò, åñëè ïåðåìåííàÿ $limit2 íå ðàâíà -1 , òî ïåðåìåííàÿ $limit2 ðàâíà çíà÷åíèþ, êîòîðîå áûëî ïåðåäàíî â ôóíêöèþ function get_pic_data
À äàëüøå ýòà ïåðåìåííàÿ $limit2 ïîïàäàåò/èñïîëüçóåòñÿ â êîäå:
Åñëè êîëè÷åñòâî èçîáðàæåíèé áîëüøå 1000
if ($pic_count > 1000)
òî èñïîëüçóåòñÿ êîä:
$result = cpg_db_query("SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE randpos IN ($random_num_set) AND approved = 'YES' $ALBUM_SET ORDER BY RAND() LIMIT $limit2");
èíà÷å, ò.å. ìåíüøå 1000,
} else {
òî èñïîëüçóåòñÿ êîä:
$query = "SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' $META_ALBUM_SET ORDER BY RAND() LIMIT $limit2";
Ñîîòâåòñòâåííî ê Âàì, óâàæàåìûé âîïðîñ, ÷òî ó Âàñ ñåé÷àñ ïðîïèñàíî â
Êîíôèã -> Îòîáðàæåíèå ñïèñêà àëüáîìîâ -> Ñîäåðæàíèå ãëàâíîé ñòðàíèöû
Ïðÿì ñêîïèðóéòå íàì îòòóäà âñ¸ ñòðîêó...
P.S. Ó ìåíÿ ê Âàì òàêàÿ ïðîñüáà...
 ìîìåíò, êîãäà ó Âàñ äàííàÿ îøèáêà âîñïðîèçâîäèòüñÿ, ïîæàëóéñòà:
 ôàéëå:
functions.inc.php
Ïîæàëóéñòà, ïîïðîáóéòå çàìåíèòü ñòðîêó:
function get_pic_data($album, &$count, &$album_name, $limit1=-1, $limit2=-1, $set_caption = true)
íà ñòðîêó:
function get_pic_data($album, &$count, &$album_name, $limit1="-1", $limit2="-1", $set_caption = true)
È çàìåíèòü ñòðîêó:
$limit .= ($limit2 != -1) ? ' ,'. $limit2 : '';
íà ñòðîêó:
$limit .= ($limit2 != "-1") ? ' ,'. $limit2 : '';
È ïîñìîòðèòå, íå èñ÷åçíåò ñëó÷àéíî ýòà îøèáêà èëè íåò.
Спасибо за проявленный интерес и помощь в решении моей проблемы !!!
Теперь отвечаю на вопросы:
Содержание главной страницы - breadcrumb/catlist/alblist/random,2/lastup,2
Ошибка возникает в блоке рандом.
Строки в function.inc.php изменил - ничего не изменилось.
Подключаюсь к БД с помощью SQLylog - пытаюсь вручную выполнить этот запрос. Так вот - с минусом - всегда ошибка. И не важно, в кавычках -1 или нет.
Может кто-то прояснит - что означает именно -1 ?
LIMIT 1 понимаю - ограничить выборку одним значением - а минус один ?! ???
Äà, ïðîáëåìà èìåííî â ýòîì, çàïðîñ ïûòàåòñÿ ïîëó÷èòü âûáîðêó èç -1 ýëåìåíòà, ÷òî è ïðèâîäèò ê îøèáêå.
Ìíå êàæåòñÿ òåïåðü ñòîèò ïîïðîáîâàòü èçìåíèòü óêàçàííûå ñòðîêè ïðîñòî óáðàâ ýòîò ìèíóñ.
Что самое интересное - просто если заменить "-1" на "1" - ошибка вылазит уже в другом месте - и тоже с -1. Т.е. нужно глобально переделывать.
Неужели ни у кого на MySQL 5 нету такой ?
Quote from: Zevs on December 06, 2007, 12:16:22 PM
×òî ñàìîå èíòåðåñíîå - ïðîñòî åñëè çàìåíèòü "-1" íà "1" - îøèáêà âûëàçèò óæå â äðóãîì ìåñòå - è òîæå ñ -1. Ò.å. íóæíî ãëîáàëüíî ïåðåäåëûâàòü.
Íåóæåëè íè ó êîãî íà MySQL 5 íåòó òàêîé ?
Äàííàÿ îøèáêà ñ MySQL íå ñâÿçàíà.
Äàííàÿ îøèáêà ñâÿçàíà êîíêðåòíî ñ âàøåé êîíôèãóðàöèåé ìàøèíû è âñåãî ñêîðåå ñ íåâåðíîé îáðàáîòêîé php ÷àñòè êîäà.  php òîæå îøèáêè áûâàþò, êîòîðûé òîæå èñïðàâëÿþòñÿ.
Êàêîé ó Âàñ php âåðñèè?
Ïðîáîâàëè îáíîâèòñÿ äî 5.2.5?
Íåò ëè ó Âàñ êàêîãî-íèáóäü àêñåëåðàòîðà íà ñàéòå?
Êàêîé ó Âàñ SQL âåðñèè (÷èñòî ðàäè èíòåðåñà)?
Ôàéëû ïðîáîâàëè â àâòîìàòè÷åñêîì ðåæèìå íà ñàéò çàíîâî ïåðåçàëèâàòü?
Отвечаю:
Operating system: FreeBSD
PHP: 5.2.4
Accelerator: N/A
Database MySQL 5.0.45-log
обновлять ничего не могу - хостинг не мой.
Файлы перезаливать не пробовал. Перезалью - отпишусь
Сегодня обновил галерею (т.е. перезалил все файлы) - проблема как была, так и осталась :(
Quote from: Zevs on January 31, 2008, 11:40:55 AM
Ñåãîäíÿ îáíîâèë ãàëåðåþ (ò.å. ïåðåçàëèë âñå ôàéëû) - ïðîáëåìà êàê áûëà, òàê è îñòàëàñü :(
Âñ¸ òàêè ÿ äóìàþ ÷òî âàì íóæíî
- ïîïðîáîâàòü "îáíîâèòü" php
- ïîïðîáîâàòü óñòàíîâèòü ÷èñòóþ âåðñèþ ãàëåðåè è ïîñìîòðåòü, áóäåò ëè òàì òàêàÿ æå îøèáêà
Докладываю.
На чисто установленной галерее таких глюков нет. Может быть это может быть связано с содержимым галереи ? Какой-нибудь сдвиг ?
Случайно обнаружил, что нормально показывается только картинка с pos=-5. Остальные (например, -6 или -1) - фиг - критическая ошибка.
Quote from: Zevs on February 18, 2008, 04:10:08 PM
Äîêëàäûâàþ.
Íà ÷èñòî óñòàíîâëåííîé ãàëåðåå òàêèõ ãëþêîâ íåò. Ìîæåò áûòü ýòî ìîæåò áûòü ñâÿçàíî ñ ñîäåðæèìûì ãàëåðåè ? Êàêîé-íèáóäü ñäâèã ?
Ñëó÷àéíî îáíàðóæèë, ÷òî íîðìàëüíî ïîêàçûâàåòñÿ òîëüêî êàðòèíêà ñ pos=-5. Îñòàëüíûå (íàïðèìåð, -6 èëè -1) - ôèã - êðèòè÷åñêàÿ îøèáêà.
×èíèòü "ñòàðóþ" áàçó äàííûõ ïðîáîâàëè?
А есть какой-нибудь встроенный "чинильщик" или "пересчитывальщик" ?
Собственно база галереи и база форума - одна на двоих (у меня интеграция с punbb)
Встроенный чинильщик есть в PhpMyAdmin. Операции - проверить, оптимизировать, восстановить.
check table по всем таблицам дает ОК
Quote from: Alex Revo on February 20, 2008, 07:17:15 AM
Âñòðîåííûé ÷èíèëüùèê åñòü â PhpMyAdmin. Îïåðàöèè - ïðîâåðèòü, îïòèìèçèðîâàòü, âîññòàíîâèòü.
"âîññòàíîâèòü" è åñòü "ïî÷èíèòü" :)
Quote from: Makc666 on February 21, 2008, 12:21:54 PM
"восстановить" и есть "починить" :)
Не понял юмора. Я имел в виду команды: check, restore и optimize. :)
Quote from: Zevs on February 20, 2008, 08:37:22 AM
check table ïî âñåì òàáëèöàì äàåò ÎÊ
Çíà÷èò áàçà íå âèíîâàòà.
Quote from: Alex Revo on February 21, 2008, 12:29:59 PM
Íå ïîíÿë þìîðà. ß èìåë â âèäó êîìàíäû: check, restore è optimize. :)
ß â ñâî¸ì ïîñòå íàïèñàë ñëîâî "÷èíèòü"
Quote from: Makc666 on February 19, 2008, 02:24:21 PM
×èíèòü "ñòàðóþ" áàçó äàííûõ ïðîáîâàëè?
:) À "÷èíèòü" òàì íåòó, åñòü "âîññòàíîâèòü". Âîò ÿ è ïîÿñíèë, ÷òî "÷èíèòü" åñòü "âîññòàíîâèòü".