Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Постраничный вывод из массива
 
 автор: CassIO   (15.04.2008 в 05:50)   письмо автору
 
 

Вот код:

<?
    
    $cat_id 
clear($_REQUEST['cat_id']);
    
    
// Ну тут мы получили название категории что бы вывести ее в speedbar'e
    
$sql "SELECT `cat_name` FROM `books_cats` WHERE `cat_id` = '$cat_id'";
    
$result mysql_query($sql);
    
$data mysql_fetch_array($result);
    
$links "<a href=\"index.php\">Главная</a> / <a href=\"index.php?do=by_cat\">Категории</a> / ".$data['cat_name'];
    
    
// Начинаем выборку книг, принадлежащих категории с ключем $cat_id
    
$sql2 "SELECT * FROM `books_books` ORDER BY `b_name`";
    
$result2 mysql_query($sql2);
    if (
mysql_num_rows($result2) == 0) {
            
        
$top .= "В базе нет книг";
            
    } else {
        
        
$books "";
        
$top .= "<table width=\"100%\" border=\"0\">
                  <tr>
                    <td><b>Название книги</b></td>
                    <td><b>Автор</b></td>
                    <td><b>Просмотров</b></td>
                  </tr>
                "
;
                
        
$boocks = array();
        
$i 0;
        while (
$data2 mysql_fetch_array($result2)) {
            
$cat_list $data2['b_cats']; // Получили список категорий к которым пренадлежит книга.
            // Они идут таким образом: 1,2,5,9 и т.д.
            
$cat_list explode(",",$cat_list); // Получаем каждый лемент между знаками ,
            
foreach ($cat_list as $element) { // Присвоили значение каждого элемента переменной $element
                
                
if ($cat_id == $element) { // Если элемент списка категорий равен выбранной категории, т.е. $cat_id то мы его выводим, если нет то подавляем его вывод
                    
$i++;
                    
$sql3 "SELECT `a_name` FROM `books_autors` WHERE `a_id` = '".$data2['b_aid']."'"// Получаем имя автора написавшего нашу книгу
                    
$result3 mysql_query($sql3);
                    
$data3 mysql_fetch_array($result3);
                    
                    
$boocks[$i]["autor"] = "<a href=\"index.php?do=show_autor&autor_id=".$data2['b_aid']."\">".$data3['a_name']."</a>"// Автор
                    
$boocks[$i]["name"] = "<a href=\"index.php?do=show_boock&boock_id=".$data2['b_id']."\">".$data2['b_name']."</a>"// Название книги
                    
$boocks[$i]["views"] = $data2['b_views']; // Просмотром
                            
                
}
                        
            }
                    
        }
                
        
print_r ($boocks);
        
        
// Выводим все из массива...
        
$page intval($_REQUEST['page']); 
        
        if (empty(
$page)) {
            
$page "1";
        }
        
        
$records_on_page 10//Количество записей на странице 
        
$total_count ceil(count($boocks) / $records_on_page); //Общее количество стараниц 
        
        
$start_index count($boocks) - ($page 1)*$records_on_page
        
$end_index $start_index $records_on_page
        
        for(
$i $start_index$i $end_index$i--) {
            
            
$autor $boocks[$i]["autor"];
            
$name $i." - ".$boocks[$i]["name"];
            
$views $boocks[$i]["views"];
            
            
$parse->get_tpl('templates/show_cat.tpl');  // Выбрали шаблон
            // Назначили переменные
            
$parse->set_tpl('{name}',$name);
            
$parse->set_tpl('{autor}',$autor);
            
$parse->set_tpl('{views}',$views);
            
$parse->tpl_parse();// спарсили
            
$top .= $parse->template// записали в переменную    
                
        
}
        
        
$top .= "</table>";
        
                
$top .= make_navi($total_count$cat_id$page);
    }
    
?>


У меня почему то при выводе массива на первой странице появляется элемент под номером 29...хотя выбокрка начинается с 0 элемента и должна закончиться на 28...а заканчивается почему то на 29 :( Помогите решить проблему, или покажите другой способ вывода из массива :)

   
 
 автор: ONYX   (15.04.2008 в 06:52)   письмо автору
 
   для: CassIO   (15.04.2008 в 05:50)
 

Проблема скорее всего в цикле значение $start_index нужно уменьшить на 1, и индексация пойдет нормально
for($i = $start_index-1; $i > $end_index; $i--)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования