vitaxastifler Posted October 13, 2014 Report Share Posted October 13, 2014 (edited) Парни,кто то может помочь в выводе постраничной навигацииТоесть из вот этого сделать что бы на стр выводило только по 20 записей,ну и стрелочки например вперёд,назад...!<?php foreach ($this->result as $dbname=> $db) { if($dbname !== 'needle') { echo "<br><span style='font-size: 18px;background-color:#309603; color: #FFF;'>Знайдено записів: " . count($db) . ' ' . $dbname . " </span>"; foreach ($db as $field => $value) { echo '<div class="item">'; foreach ($value as $key=> $r) { $r = str_ireplace($this->result['needle'][0], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][0] . '</span>', $r); $r = str_ireplace($this->result['needle'][1], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][1] . '</span>', $r); $r = str_ireplace($this->result['needle'][2], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][2] . '</span>', $r); $r = str_ireplace($this->result['needle'][3], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][3] . '</span>', $r); if($key == 'author') { echo $r . '<br />'; } else { echo $r; } } echo '</div>'; } } } ?> Edited October 13, 2014 by vitaxastifler Quote Link to comment Share on other sites More sharing options...
0 Switch74 Posted October 14, 2014 Report Share Posted October 14, 2014 хм.. 404 - не найден документ Quote Link to comment Share on other sites More sharing options...
0 vitaxastifler Posted October 14, 2014 Author Report Share Posted October 14, 2014 (edited) извини что я полностью код пишу,просто я такой ляпа что могу натупить( Давайте ещё раз полность,мб вы что то не допоняли.Надо сделать вывод стр из б/д по 20 на страницу.Сайт написан на джумле.Мне кажется программист писал поиск и подкл через кодигнайтер.Вот основные файлы:1-й я так понял выводит результат поиска:http://hostingkartinok.com/show-image.php?id=469ea06a719903253ef3db1e55c222de <div id="new_search"><span class="open_search">Шукати ще!</span><div class="new_search_form"><form method="post" action="<?php echo JRoute::_('index.php?option=com_katalog&task=search&page=1'); ?>"><fieldset><legend><?php echo JText::_('COM_KATALOG_SEARCH_PARAM'); ?></legend><table><tr><td><select name="fields[]"><option value="author">Автор</option><option value="title">Назва</option><option value="rubric">Рубрика</option><option value="keywords">Ключ. слова</option><option value="person">Персоналii</option><option value="publisher">Рiк</option><option value="geograf">Географ. назва</option><option value="sourse">Джерело</option></select></td><td><input type="text" name="search_words[]"/><br /></td></tr><tr><td><select name="fields[]"><option value="author">Автор</option><option value="title">Назва</option><option value="rubric">Рубрика</option><option value="keywords">Ключ. слова</option><option value="person">Персоналii</option><option value="publisher">Рiк</option><option value="geograf">Географ. назва</option><option value="sourse">Джерело</option></select></td><td><input type="text" name="search_words[]"/><br /></td></tr><tr><td><select name="fields[]"><option value="author">Автор</option><option value="title">Назва</option><option value="rubric">Рубрика</option><option value="keywords">Ключ. слова</option><option value="person">Персоналii</option><option value="publisher">Рiк</option><option value="geograf">Географ. назва</option><option value="sourse">Джерело</option></select></td><td><input type="text" name="search_words[]"/><br /></td></tr><tr><td><select name="fields[]"><option value="author">Автор</option><option value="title">Назва</option><option value="rubric">Рубрика</option><option value="keywords">Ключ. слова</option><option value="person">Персоналii</option><option value="publisher">Рiк</option><option value="geograf">Географ. назва</option><option value="sourse">Джерело</option></select></td><td><input type="text" name="search_words[]"/><br /></td></tr></table><input type="radio" name="search_type" checked="checked" value="similar" />Подiбний<br /><input type="radio" name="search_type" value="exect" />Точний<br /></fieldset><fieldset><legend><?php echo JText::_('COM_KATALOG_CHOOSE_DB'); ?></legend><table><tr><td><input type="checkbox" name="dbname[]" value="БД книг" id="book"/><label for="book"><?php echo JText::_('COM_KATALOG_BOOK'); ?></label></td><td><input type="checkbox" name="dbname[]" value="БД статей із періодики" id="bibl"/><label for="bibl"><?php echo JText::_('COM_KATALOG_BIBL'); ?></label></td><td><!--<input type="checkbox" name="db[]" value="period" id="period"/><label for="period"><?php echo JText::_('COM_KATALOG_PERIOD'); ?></label><br />--></td></tr><tr><td><input type="checkbox" name="dbname[]" value="БД аудіо-відео матеріалів" id="kffd"/><label for="kffd"><?php echo JText::_('COM_KATALOG_KFFD'); ?></label></td><td><input type="checkbox" name="dbname[]" value="БД краєзнавчих матеріалів" id="kray"/><label for="kray"><?php echo JText::_('COM_KATALOG_KRAY'); ?></label></td><td><input type="checkbox" name="dbname[]" value="БД методичних матеріалів" id="method"/><label for="method"><?php echo JText::_('COM_KATALOG_METHOD'); ?></label></td></tr></table></fieldset><input type="submit" value="Пошук" /></form></div></div><?phpforeach ($this->result as $dbname=> $db) {if($dbname !== 'needle') {echo "<br><span style='font-size: 18px;background-color:#309603; color: #FFF;'>Знайдено записів: " . count($db) . ' ' . $dbname . " </span>";foreach ($db as $field => $value) {echo '<div class="item">';foreach ($value as $key=> $r) {$r = str_ireplace($this->result['needle'][0], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][0] . '</span>', $r);$r = str_ireplace($this->result['needle'][1], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][1] . '</span>', $r);$r = str_ireplace($this->result['needle'][2], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][2] . '</span>', $r);$r = str_ireplace($this->result['needle'][3], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][3] . '</span>', $r);if($key == 'author') {echo $r . '<br />';} else {echo $r;}}echo '</div>';}} } ?><a href="?option=com_katalog&task=search&page=1&word1=<?=$this->result['needle'][0]?>&word2=<?=$this->result['needle'][1]?>&word3=<?=$this->result['needle'][2]?>&word4=<?=$this->result['needle'][3]?>">1////</a><a href="?option=com_katalog&task=search&page=2&word1=<?=$this->result['needle'][0]?>&word2=<?=$this->result['needle'][1]?>&word3=<?=$this->result['needle'][2]?>&word4=<?=$this->result['needle'][3]?>">2////</a><a href="?option=com_katalog&task=search&page=3&word1=<?=$this->result['needle'][0]?>&word2=<?=$this->result['needle'][1]?>&word3=<?=$this->result['needle'][2]?>&word4=<?=$this->result['needle'][3]?>">3////</a></div> 2-й файл это я так понял отвечвает за выводhttp://hostingkartinok.com/show-image.php?id=46519351c40e5bf72d141f81c3d6e8c9// No direct accessdefined( '_JEXEC' ) or die( 'Restricted access' );jimport( 'joomla.application.component.model' );class KatalogModelKatalog extends JModel{/*** Gets the greeting* @return string The greeting to be displayed to the user*/function getResult($post) {$db =& JFactory::getDBO();//get a dbfields and parameters$first_field = $post['fields'][0];$second_field = $post['fields'][1];$third_field = $post['fields'][2];$fourth_field = $post['fields'][3];$first = $post['search_words'][0];$second = $post['search_words'][1];$third = $post['search_words'][2];$fourth = $post['search_words'][3];$search_type = $post['search_type'];if($first !== '%') {$first = "AND $first_field LIKE '$first'";} else {$first = '';}if($second !== '%') {$second = "AND $second_field LIKE '$second'";} else {$second = '';}if($third !== '%') {$third = "AND $third_field LIKE '$third'";} else {$third = '';}if($fourth !== '%') {$fourth = "AND $fourth_field LIKE '$fourth'";} else {$fourth = '';}//search data in choosen db's$result = array();foreach($post['dbname'] as $dbname) {$query = "SELECT author, title, pub_info, publisher, pages, seria, source FROM #__katalog WHERE dbname LIKE '$dbname'$first $second $third $fourth";$db->setQuery( $query );$result[$dbname] = $db->loadObjectList();}return $result;}} Edited October 14, 2014 by vitaxastifler Quote Link to comment Share on other sites More sharing options...
0 Николя223 Posted October 14, 2014 Report Share Posted October 14, 2014 Switch)) посмотри внимательно тот код))) Он вцикле запросы делает по прежнему - потому что мы в запрос не вставили $limit, а вставить его можно будет поняв для чего $first $second $third $fourth посмотри внимательно на код на первой странице. там что то типа формы поиска у него Впринципе можно и просто через LIMIT .. N сделать, как я уже писал.... ))))вообщем я другое решение немного вам дал))) попытайтесь разобраться. легче конечно через просто LIMIT ... но не нравится мне if($limit !== '%') { $limit = "AND $limit_field LIKE '$limit'"; } else { $limit = ''; }вы какой то ерунды наделали))))) вам другое предлагают - посмотрите внимательно тогда что вам Switch предложилLIMIT - это другое. попытайтесь вникнуть, почитать документацию.... У меня сейчас подозрение складывается, что вы многих вещей просто недопонимаете пока что)) Quote Link to comment Share on other sites More sharing options...
0 vitaxastifler Posted October 14, 2014 Author Report Share Posted October 14, 2014 (edited) Николя223 вы правы,я плохо понимаю пхп!Короче я в тупике,надо переваривать всё.Спасибо вам,парни. Edited October 14, 2014 by vitaxastifler 1 Quote Link to comment Share on other sites More sharing options...
0 vitaxastifler Posted October 16, 2014 Author Report Share Posted October 16, 2014 В общем пробовал,ничего не получилось у меня.Дошёл к тому что при нажатии на следующую стр у меня всё сбивается.Как то тут всё оч сложно,надо что бы кто то смотрел. Quote Link to comment Share on other sites More sharing options...
0 Switch74 Posted October 16, 2014 Report Share Posted October 16, 2014 а что сбивается то? Quote Link to comment Share on other sites More sharing options...
0 vitaxastifler Posted October 16, 2014 Author Report Share Posted October 16, 2014 (edited) выведенные 20 книгВот,так будет понятней) Один знакомый говорит что надо сделать что бы форма и поиск был на 1-й стр тогда всё должно сработать. Edited October 16, 2014 by vitaxastifler Quote Link to comment Share on other sites More sharing options...
0 Switch74 Posted October 16, 2014 Report Share Posted October 16, 2014 ок, теперь по порядку:1. после того, как вы сделали поиск по Шевченко, как выглядит адрес страницы - интересует какие переменные передаются в GET2. при переходе на другую страницу какой адрес получается?3. Совет хороший, чтобы на странице результатов была форма поиска - она вам даст возможность изменить критерии поиска не переходя на страницу поиска и избавит от лишних действий.Я бы посоветовал сделать страницу поиска и вывод результата на одной странице - меньше страниц, больше удобства 1 Quote Link to comment Share on other sites More sharing options...
0 vitaxastifler Posted October 16, 2014 Author Report Share Posted October 16, 2014 (edited) Тот "программист" который дал мне это задание не сделал это!И говорит что сайт будет падать,если залить новые базы.Я вот решил протестить,сейчас сделаю копию сайта и поробую перенести всю базу!Мы ж не будем выводить абсолютно все книги,поэтому я думаю что не должен падать!А вы как думаете? Сам лично правда локально я выводил 800 книг на одной стр.Или хостинг может не выдержать? Edited October 16, 2014 by vitaxastifler Quote Link to comment Share on other sites More sharing options...
0 Switch74 Posted October 16, 2014 Report Share Posted October 16, 2014 Вы говорили вроде у вас в базе 24000 строки, подозреваю что это 24000 книг, выводя столько строк:1. это будет равняться приблизительно 1мб при условии, что вы будете выводить по 40 символов на книгу в среднем - Автор и название книги + теги верстки2. таблица получится очень длинной и листать ее будет не очень удобно, особенно на медленных старых компах хостинг может быть и выдержит формирование данной странички, но3. хостинг у вас скорее всего виртуальный, а это значит, что у вас в распоряжении не 1 компьютер, а в лучшем случае 1/10 от компьютера, т.е. практически калькулятор 4. попробуйте сделать все на копии сайта у себя дома, засечь сколько будет грузиться такая страничка и можете смело полученное время умножить на 10, думаю оно может оказаться равным 10сек5. ну и не забывайте, что у вас может одновременно захотеть посмотреть список книг скажем 10 человек, считайте что кому-то придется ждать минуту, прежде чем он увидит хоть что-то Quote Link to comment Share on other sites More sharing options...
0 Николя223 Posted October 16, 2014 Report Share Posted October 16, 2014 Давай я тебе свой сервак для тестов дам - аккаунт. зальешь туда и как нибудь ближе к воскресенью решим твой вопрос Quote Link to comment Share on other sites More sharing options...
0 vitaxastifler Posted October 17, 2014 Author Report Share Posted October 17, 2014 (edited) Николя223 мб проще тим виером?))Если тебе не сложно...Я б те всё показал,рассказал) Edited October 17, 2014 by vitaxastifler Quote Link to comment Share on other sites More sharing options...
0 Николя223 Posted October 17, 2014 Report Share Posted October 17, 2014 Давай тогда я завтра вечером тебе в личку напишу Quote Link to comment Share on other sites More sharing options...
0 vitaxastifler Posted November 10, 2014 Author Report Share Posted November 10, 2014 Тема ещё актуальна(К сожалению Николя где то пропал. Quote Link to comment Share on other sites More sharing options...
0 vitaxastifler Posted January 19, 2015 Author Report Share Posted January 19, 2015 up)) Quote Link to comment Share on other sites More sharing options...
Question
vitaxastifler
Парни,кто то может помочь в выводе постраничной навигации
Тоесть из вот этого сделать что бы на стр выводило только по 20 записей,ну и стрелочки например вперёд,назад...!
<?php foreach ($this->result as $dbname=> $db) { if($dbname !== 'needle') { echo "<br><span style='font-size: 18px;background-color:#309603; color: #FFF;'>Знайдено записів: " . count($db) . ' ' . $dbname . " </span>"; foreach ($db as $field => $value) { echo '<div class="item">'; foreach ($value as $key=> $r) { $r = str_ireplace($this->result['needle'][0], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][0] . '</span>', $r); $r = str_ireplace($this->result['needle'][1], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][1] . '</span>', $r); $r = str_ireplace($this->result['needle'][2], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][2] . '</span>', $r); $r = str_ireplace($this->result['needle'][3], '<span style="background-color:#FFFE4E;">' . $this->result['needle'][3] . '</span>', $r); if($key == 'author') { echo $r . '<br />'; } else { echo $r; } } echo '</div>'; } } } ?>Edited by vitaxastiflerLink to comment
Share on other sites
40 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.