Форум -> Сделайте за спасибо! Сделаю за отзыв! -> Помогите с разбиением списка в админке модуля на страници.. новый модуль каталог сайтов... | Помогите с разбиением списка в админке модуля на страници.. новый модуль каталог сайтов... |
---|
alfainfo | Дата: 08.12.2007, в 17:19 | Сообщение №1 |   Активный участникПользователь №: 237 Сообщений: 152
 | вот организовал модуль каталог сайтов с кучей всяких добовлений в функционале
пример смотрит тут [url="http://alfainfo.ru/index.php?name=Catalog"]Catalog[/url]
могу только сказать что за полторы недели количество зарегестрированных сайтов составило болие [color="#8B0000"]6500[/color] !!!
собственно вопрос такой: в админке есть закладка где выводится весь список сайтов для редактирования (кстати админка модуля похожа на админку каталога файлов) так вот все сайты выводятся одним списком, щас голову ломаю как сделать чтобы список разбивался на страници как в каталоге файлов...
вот исходный код функции вывода списка:
Код | 1
| function listlinks()
{global $prefix, $db, $admin_file;
head();
LinksNavi();
$result = $db->sql_query("SELECT lid, title, description, UNIX_TIMESTAMP(date) as formatted, nobacklink, status FROM ".$prefix."_links ORDER BY lid");
if ($db->sql_numrows($result) > 0)
{
OpenTable();
echo "<center><font class=\"option\"><b>"._ADDNEWLINKS."</b></font></center><br><form action=\"".$admin_file.".php?op=check_links\" method=\"post\">"
."<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"100%\" class=\"bgcolor4\">"
."<th>"._TITLE."</th><th>"._SUBTITLE."</th><th>Без ссылки</th><th>Новый?</th><th>"._FUNCTIONS."</th></tr>";
while (list($lid, $title, $description, $l_date, $nbl, $status) = $db->sql_fetchrow($result))
{
$link_date = date("d.m.Y", $l_date);
if ($nbl=="1")
$no="<img src=images/delete.gif border=\"0\" alt=\"Нет обратной ссылки\" title=\"Нет обратной ссылки\">";
else
$no="";
echo "<tr onmouseover=this.className=\"bgcolor3\" onmouseout=this.className=\"bgcolor1\" class=\"bgcolor1\"><td>$title</td>"
."<td align=\"center\"><img src=\"images/info.gif\" border=\"0\" alt=\"".$description."\"></td>"
."<td align=\"center\">".$no."</td>"
."<td align=\"left\" width=\"85\">".$link_date." ".($status=="0" ? "<img src='images/help.gif' border='0' alt='не проверен'>" : "")."</td>"
."<td align=\"center\"></a> <a href=\"".$admin_file.".php?op=edit_links&lid=$lid\" title=\""._EDIT."\"><img src=\"images/edit.gif\" border=\"0\" alt=\""._EDIT."\"> </a><input name=\"proverka[]\" type=\"checkbox\" value=\"".$lid."\"></td></tr>";
}
echo "<tr><td colspan=\"5\" class=\"bgcolor1\" align=\"right\"> Удалить выделенное:<input name=\"del\" type=\"checkbox\" value=\"1\"> <input type=\"submit\" value=\"Проверить\"></td></tr></table></form>";
CloseTable();
}
foot();
} |
эту функцию я переписал по аналогии с каталогом файлов и теперь выводится список из 25 сайтов но в низу менюшка со списком страниц не появляется подскажите плиз что не так???? :(89):
Код | 1
| function listlinks()
{global $prefix, $db, $admin_file, $pagenum;
head();
LinksNavi();
$storynum = 25;
$pagenum = (!intval($pagenum)) ? 1 : intval($pagenum);
$offset = ($pagenum-1) * $storynum;
$offset = intval($offset);
$result = $db->sql_query("SELECT f.lid, f.title, f.description, UNIX_TIMESTAMP(f.date) as formatted, f.nobacklink, f.status, c.cid, c.title FROM ".$prefix."_links AS f LEFT JOIN ".$prefix."_links_categories AS c ON (f.cid=c.cid) WHERE status!='0' ORDER BY f.lid DESC LIMIT $offset, $storynum");
if ($db->sql_numrows($result) > 0)
{
OpenTable();
echo "<center><font class=\"option\"><b>"._ADDNEWLINKS."</b></font></center><br><form action=\"".$admin_file.".php?op=check_links\" method=\"post\">"
."<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"100%\" class=\"bgcolor4\">"
."<th>"._TITLE."</th><th>"._SUBTITLE."</th><th>Без ссылки</th><th>Новый?</th><th>"._FUNCTIONS."</th></tr>";
while (list($lid, $title, $description, $l_date, $nbl, $status, $ccid, $ctitle) = $db->sql_fetchrow($result))
{
$link_date = date("d.m.Y", $l_date);
if ($nbl=="1")
$no="<img src=images/delete.gif border=\"0\" alt=\"Нет обратной ссылки\" title=\"Нет обратной ссылки\">";
else
$no="";
echo "<tr onmouseover=this.className=\"bgcolor3\" onmouseout=this.className=\"bgcolor1\" class=\"bgcolor1\"><td>$title</td>"
."<td align=\"center\"><img src=\"images/info.gif\" border=\"0\" alt=\"".$description."\"></td>"
."<td align=\"center\">".$no."</td>"
."<td align=\"left\" width=\"85\">".$link_date." ".($status=="0" ? "<img src='images/help.gif' border='0' alt='не проверен'>" : "")."</td>"
."<td align=\"center\"></a> <a href=\"".$admin_file.".php?op=edit_links&lid=$lid\" title=\""._EDIT."\"><img src=\"images/edit.gif\" border=\"0\" alt=\""._EDIT."\"> </a><input name=\"proverka[]\" type=\"checkbox\" value=\"".$lid."\"></td></tr>";
}
echo "<tr><td colspan=\"5\" class=\"bgcolor1\" align=\"right\"> Удалить выделенное:<input name=\"del\" type=\"checkbox\" value=\"1\"> <input type=\"submit\" value=\"Проверить\"></td></tr></table></form>";
CloseTable();
list($numstories) = $db->sql_fetchrow($db->sql_query("SELECT Count(lid) FROM ".$prefix."_links WHERE status!='0'"));
$numpages = ceil($numstories / $storynum);
num_page($module_name, $numstories, $numpages, $storynum, "op=listlinks&");
}
foot();
} |
кстати сам модуль продаю и могу расказать по подробней про него! |
| | Sunvas | Дата: 08.12.2007, в 17:43 | Сообщение №2 |   ПрофиПользователь №: 181 Сообщений: 554
 | Цитата | кстати сам модуль продаю и могу расказать по подробней про него! |
Ведь я его тоже могу продавать :) Причем подешевле. Ну ладно... Если хочешь заработать - успехов.
По сабжу. Проверь, не ли ошибок в Mysql запросе (может русские буквы).
Вот, каким должен быть конец:
Код | 1
| CloseTable();
}
list($numstories) = $db->sql_fetchrow($db->sql_query("SELECT Count(lid) FROM ".$prefix."_links WHERE status!='0'"));
die(mysql_error());
$numpages = ceil($numstories / $storynum);
num_page("", $numstories, $numpages, $storynum, "op=listlinks&");
foot();
} |
|
| | alfainfo | Дата: 10.12.2007, в 08:48 | Сообщение №3 |   Активный участникПользователь №: 237 Сообщений: 152
 | Sunvas, исправил на твою версию, но результат тот же!!! |
| | Serg_pnz | Дата: 10.12.2007, в 08:56 | Сообщение №4 |   АдминистраторПользователь №: 1 Сообщений: 2243
 | alfainfo, выполни вручную запрос, который генерится этим Код | 1
| list($numstories) = $db->sql_fetchrow($db->sql_query("SELECT Count(lid) FROM ".$prefix."_links WHERE status!='0'")); |
Т.е. включи опцию для админов "Отображать запросы", найди что-то похожее на Код | 1
| SELECT Count(lid) FROM slaed_links WHERE time <= NOW() AND status!='0' |
и загони это в phpMyAdmin, если ошибки не будет, будем думать дальше.
upd: может у тебя нет поля lid?
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 10.12.2007 г. в 08:59:24 | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | alfainfo | Дата: 12.12.2007, в 00:25 | Сообщение №5 |   Активный участникПользователь №: 237 Сообщений: 152
 | значит так:
вот что у меня в мускульной базе...
Код | 1
| DROP TABLE IF EXISTS `slaed_links`;
CREATE TABLE `slaed_links` (
`lid` int(11) NOT NULL auto_increment,
`cid` int(11) NOT NULL default '0',
`title` varchar(100) NOT NULL default '',
`description` text NOT NULL,
`url` varchar(100) NOT NULL default '',
`img` varchar(100) NOT NULL default '',
`date` datetime default NULL,
`name` varchar(100) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
`ip_sender` varchar(60) default NULL,
`votes` int(11) NOT NULL default '0',
`totalvotes` int(11) NOT NULL default '0',
`totalcomments` int(11) NOT NULL default '0',
`outs` int(11) NOT NULL default '0',
`ins` int(11) NOT NULL default '0',
`backlink` varchar(100) NOT NULL default '',
`nobacklink` tinyint(1) NOT NULL default '0',
`status` int(1) NOT NULL default '0',
PRIMARY KEY (`lid`),
KEY `cid` (`cid`),
KEY `title` (`title`)
) ENGINE=MyISAM AUTO_INCREMENT=8919 /*!40101 DEFAULT CHARSET=cp1251 */;
INSERT INTO `slaed_links` VALUES
(2, 30, 'SHOP на ALFAINFO.ru - Прода..........
(4, 56, 'Elviz.info - Только Лучший...............
...........................................................
...........................................................
(8918, 16, '"Aqvageli................
DROP TABLE IF EXISTS `slaed_links_categories`;
CREATE TABLE `slaed_links_categories` (
`cid` int(11) NOT NULL auto_increment,
`title` varchar(50) NOT NULL default '',
`cdescription` text NOT NULL,
`parentid` int(11) NOT NULL default '0',
PRIMARY KEY (`cid`),
KEY `title` (`title`)
) ENGINE=MyISAM AUTO_INCREMENT=149 /*!40101 DEFAULT CHARSET=cp1251 */;
INSERT INTO `slaed_links_categories` VALUES
(1, 'Компьютеры', '', 0),
..................
(148, 'Прочие промышленные производства', '', 141); |
|
| | alfainfo | Дата: 12.12.2007, в 00:32 | Сообщение №6 |   Активный участникПользователь №: 237 Сообщений: 152
 | на счет запросов тут мои познания весьма малы, я включил отображать запросы и что самое интересное когда в админке я захожу на главную модуля этого то он пишит следующее:
Код | 1
| GET - op=links
COOKIE - lang=russian, PHPSESSID=875dd57e8f2fa8b8721b9f74527bec07, lite_ad=бла-бла==
0.00048804 сек. - [SELECT name, pwd, ip FROM slaed_admins WHERE id='1']
0.00024795 сек. - [SELECT * FROM slaed_admins]
0.00016808 сек. - [SELECT super FROM slaed_admins WHERE id='1']
0.00041794 сек. - [SELECT title FROM slaed_modules ORDER BY title ASC]
0.00035595 сек. - [SELECT mid, title FROM slaed_modules]
0.00016307 сек. - [SELECT modules FROM slaed_admins WHERE id='1']
0.00029397 сек. - [DELETE FROM slaed_session WHERE time < '1197407749']
0.00036096 сек. - [UPDATE slaed_session SET uname='admin', time='1197408649', host_addr='80.252.150.252', guest='2', module='', url='/admin.php?op=links', u_a='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)' WHERE uname='admin']
0.00013494 сек. - [SELECT VERSION()]
0.00021696 сек. - [SELECT * FROM slaed_notes ORDER BY id DESC LIMIT 5]
0.00016403 сек. - [SELECT id, name, super FROM slaed_admins]
0.00017094 сек. - [SELECT title, content FROM slaed_blocks WHERE bkey='admin']
0.00033307 сек. - [SELECT uname, host_addr, guest, module, url, UNIX_TIMESTAMP(now())-time AS time FROM slaed_session ORDER BY uname]
0.00046610 сек. - [SELECT title, active FROM slaed_modules ORDER BY title ASC]
0.00095200 сек. - [SELECT cid, title, parentid FROM slaed_links_categories ORDER BY parentid, title]
0.00079798 сек. - [SELECT cid, title, parentid FROM slaed_links_categories]
0.00119686 сек. - [SELECT cid, title, parentid FROM slaed_links_categories ORDER BY parentid,title]
0.16844415 сек. - [SELECT * FROM slaed_links]
0.00055098 сек. - [SELECT cid, title, parentid FROM slaed_links_categories ORDER BY parentid,title]
0.00054311 сек. - [SELECT cid, title, parentid FROM slaed_links_categories ORDER BY parentid,title]
0.00053811 сек. - [SELECT cid, title, parentid FROM slaed_links_categories ORDER BY parentid,title] |
а когда жамкаю на закладку связаную именно со списком этих ссылок он после списка не чего не выводит....
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 12.12.2007 г. в 01:12:18 |
| | alfainfo | Дата: 12.12.2007, в 00:34 | Сообщение №7 |   Активный участникПользователь №: 237 Сообщений: 152
 | попытался приведенный запрос выше сергеем ввести в запросы мускуля он меня отругал и выдал следующее:
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php Ошибка SQL-запрос:
SELECT Count( lid ) FROM slaed_links WHERE time <= NOW( ) AND STATUS != '0'
Ответ MySQL:
#1054 - Unknown column 'time' in 'where clause' ?> |
ну народ посоветуйти что не так???? |
| | Serg_pnz | Дата: 12.12.2007, в 01:08 | Сообщение №8 |   АдминистраторПользователь №: 1 Сообщений: 2243
 | Ну, всё правильно - у тебя нет в таблице поля "тиме", есть "дате"...
Так попробуй Код | 1
| SELECT Count(lid) FROM slaed_links WHERE date <= NOW() AND status!='0' |
| Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | Serg_pnz | Дата: 12.12.2007, в 01:14 | Сообщение №9 |   АдминистраторПользователь №: 1 Сообщений: 2243
 | Цитата | а когда жамкаю на закладку связаную именно со списком этих ссылок он после списка не чего не выводит.... |
а вот это уже непорядок. может модуль в конце не дописал или ошибка где прекращает выполнять скрипт? обязательно должен быть список запросов | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | alfainfo | Дата: 12.12.2007, в 13:35 | Сообщение №10 |   Активный участникПользователь №: 237 Сообщений: 152
 | теперь запрос выполнил все без ошибок вот что пишет:
Код | 1
| SQL-запрос:
SELECT Count( lid )
FROM slaed_links
WHERE date <= NOW( )
AND STATUS != '0' |
потом защел в базе в этот лид пишет всего 9,211 значений так что вроде с запросами все правельно....
кста ти сергей пытаюсь прикрепить рнр файл а он (форум ) меня при этом на главную выкидывает...
я тебе админский рнр на ящик кароче вот этот (admin СОБАЧКА ponedelnikov.net) кину посмотри плиз что не так.... |
| | Serg_pnz | Дата: 12.12.2007, в 13:40 | Сообщение №11 |   АдминистраторПользователь №: 1 Сообщений: 2243
 | пакуй в zip и прикрепляй | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | Serg_pnz | Дата: 12.12.2007, в 14:59 | Сообщение №12 |   АдминистраторПользователь №: 1 Сообщений: 2243
 | Пришло письмо.
При взгляде по диагонали - вот эта строка по-любому лишняя, удали ее
Смотрю дальше...
upd: да. если снести ту строку, то всё нормально - можно передвигаться по страницам
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 12.12.2007 г. в 15:09:19 | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | alfainfo | Дата: 12.12.2007, в 21:49 | Сообщение №13 |   Активный участникПользователь №: 237 Сообщений: 152
 | строчку снес, в низу модуля появились запросы как и везде теперь, однако что самое смешное эта чертова менюшка со страничками так и не появилась....
а не нужно ли в самой админке этого модуля прописывать что нить где неть еще кроме этой функции и не играет роль что я то писал (вернее переписывал ее с модуля файлов) а в модуле файлов этот построничный вывод файлов выводится по умолчанию - первым а у меня в алминке эта закладка не поумолчанию а вторая в списке....
вот то что теперь выводит в низу на этой странице:
Код | 1
| GET - op=listlinks
COOKIE - lang=russian, PHPSESSID=bfe105......................................ce0a7c61, lite_ad=MTphZG1........................................GE2Yw==
0.00035715 сек. - [SELECT name, pwd, ip FROM slaed_admins WHERE id='1']
0.00020718 сек. - [SELECT * FROM slaed_admins]
0.00019192 сек. - [SELECT super FROM slaed_admins WHERE id='1']
0.00030589 сек. - [SELECT title FROM slaed_modules ORDER BY title ASC]
0.00029492 сек. - [SELECT mid, title FROM slaed_modules]
0.00016593 сек. - [SELECT modules FROM slaed_admins WHERE id='1']
0.00015115 сек. - [DELETE FROM slaed_session WHERE time < '1197484363']
0.00027585 сек. - [UPDATE slaed_session SET uname='admin', time='1197485263', host_addr='80.252.150.252', guest='2', module='', url='/admin.php?op=listlinks', u_a='Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)' WHERE uname='admin']
9.70363616 сек. - [SELECT VERSION()]
0.00022792 сек. - [SELECT * FROM slaed_notes ORDER BY id DESC LIMIT 5]
0.00014185 сек. - [SELECT id, name, super FROM slaed_admins]
0.00018787 сек. - [SELECT title, content FROM slaed_blocks WHERE bkey='admin']
0.00029897 сек. - [SELECT uname, host_addr, guest, module, url, UNIX_TIMESTAMP(now())-time AS time FROM slaed_session ORDER BY uname]
0.00026583 сек. - [SELECT title, active FROM slaed_modules ORDER BY title ASC]
0.05266189 сек. - [SELECT f.lid, f.title, f.description, UNIX_TIMESTAMP(f.date) as formatted, f.nobacklink, f.status, c.cid, c.title FROM slaed_links AS f LEFT JOIN slaed_links_categories AS c ON (f.cid=c.cid) WHERE status!='0' ORDER BY f.lid DESC LIMIT 0, 25]
0.01355099 сек. - [SELECT Count(lid) FROM slaed_links WHERE status!='0'] |
|
| | Serg_pnz | Дата: 12.12.2007, в 22:29 | Сообщение №14 |   АдминистраторПользователь №: 1 Сообщений: 2243
 | alfainfo, у тебя ВСЁ работает!!!
1. Сейчас видно отклик - видно, значит выполняется и скорее всего не глючит Код | 1
| 0.01355099 сек. - [SELECT Count(lid) FROM slaed_links WHERE status!='0'] |
2. Какие нафиг странички ты хочешь, если у тебя
а
???
Поставь получишь 4 страницы. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | alfainfo | Дата: 12.12.2007, в 22:51 | Сообщение №15 |   Активный участникПользователь №: 237 Сообщений: 152
 |
задает количество позиций в таблице на страницу - у меня на странице сейчас выводится 25 позиций но всего их 9тысеч...
в идеале в низу должна появится менюшка со страницами ... что бы я мог не только первые 25 позиций просмотреть а и другие ... этого я пытаюсь добится... так что не так???
или поставлю вопрос по другому что должно быть чтобы эти 9тысяч позиций разбивались на страници по скажем 25 позиций и можно было перелистывать...??? |
| | Serg_pnz | Дата: 12.12.2007, в 23:03 | Сообщение №16 |   АдминистраторПользователь №: 1 Сообщений: 2243
 | а условие!
тогда тот запрос должен быть не Код | 1
| SELECT Count(lid) FROM slaed_links WHERE date <= NOW() AND status!='0' |
а
Код | 1
| SELECT Count(lid) FROM slaed_links |

Хотя для этого уже помоему лучше другой использовать запрос, точнее немного другую структуру. Если не ошибаюсь есть специальная функция в мускуле, подсчитывающая строки в таблице. (я сейчас про оптимальность кода толкую, но должно и так всё работать)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 12.12.2007 г. в 23:08:56 | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | alfainfo | Дата: 13.12.2007, в 00:16 | Сообщение №17 |   Активный участникПользователь №: 237 Сообщений: 152
 | во рульно после этой замены эта чертова менюшка появилась тока теперь сама таблица со списком сайтов вырисовывается тока на первой странице а на остальных там просто пропуск....  |
| | Serg_pnz | Дата: 13.12.2007, в 00:21 | Сообщение №18 |   АдминистраторПользователь №: 1 Сообщений: 2243
 | alfainfo, если сайт в инете - готовь мне админский вход и вход на фтп... | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
| | alfainfo | Дата: 14.12.2007, в 20:28 | Сообщение №19 |   Активный участникПользователь №: 237 Сообщений: 152
 | спасибо огромное!!!!  |
| | alfainfo | Дата: 18.12.2007, в 21:36 | Сообщение №20 |   Активный участникПользователь №: 237 Сообщений: 152
 | еще вопросик очень нужен: все на ту же тему, все на страници разбивается, все круто только на этой странице (списка сайтов) список выводится в нутри тега
Код | 1
| <form action=\"".$admin_file.".php?op=check_links\" method=\"post\"> |
.............................
...............................
Код | 1
| Удалить выделенное:<input name=\"del\" type=\"checkbox\" value=\"1\"> <input type=\"submit\" value=\"Проверить\"> |
где подправить чтоб после нажатия на кнопку "проверить" не перекидывало на первую страницу списка, и можно ли "удалить" сделать не опциональной галочкой а отдельной кнопочкой????
(полный код функции в предыдущих постах) |
| | | Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|
|