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