Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2016, 20:46   #1
inkognitik
 
Регистрация: 14.12.2015
Сообщений: 8
Восклицание Навигация

Знаете курс Жур Артур? Интернет магазин с нуля.

Так вот.
Засела на навигации.... Вообще не хочет появляться даже намек на то,что должна быть навигация. Помогите,пожалуйста. Уже 2 раза код переписывала.

PHP код:

<ul id="block-tovar-grid" >

<?php

    $num 
6// Здесь указываем сколько хотим выводить товаров.
    
$page = (int)$_GET['page'];              
    
    
$count mysql_query("SELECT COUNT(*) FROM table_products WHERE visible = '1'",$link);
    
$temp mysql_fetch_array($count);

    If (
$temp[0] > 0)
    {  
    
$tempcount $temp[0];

    
// Находим общее число страниц
    
$total = (($tempcount 1) / $num) + 1;
    
$total =  intval($total);

    
$page intval($page);

    if(empty(
$page) or $page 0$page 1;  
       
    if(
$page $total$page $total;
     
    
// Вычисляем начиная с какого номера
    // следует выводить товары 
    
$start $page $num $num;

    
$qury_start_num " LIMIT $start$num"
    }


    
  
$result mysql_query("SELECT * FROM table_products WHERE visible='1' ORDER BY $sorting $qury_start_num ",$link);  

if (
mysql_num_rows($result) > 0)
{
 
$row mysql_fetch_array($result); 
 
 do
 {

if  (
$row["image"] != "" && file_exists("./uploads_images/".$row["image"]))
{
$img_path './uploads_images/'.$row["image"];
$max_width 200
$max_height 200
 list(
$width$height) = getimagesize($img_path); 
$ratioh $max_height/$height
$ratiow $max_width/$width
$ratio min($ratioh$ratiow); 
$width intval($ratio*$width); 
$height intval($ratio*$height);    
}else
{
$img_path "/images/no-image.png";
$width 110;
$height 200;

 
 
// Количество отзывов 
$query_reviews mysql_query("SELECT * FROM table_reviews WHERE products_id = '{$row["products_id"]}' AND moderat='1'",

$link);  
$count_reviews mysql_num_rows($query_reviews);
    
  
  echo 
'
  
  <li>
  <div class="block-images-grid" >
  <img src="'
.$img_path.'" width="'.$width.'" height="'.$height.'" />
  </div>
  <p class="style-title-grid" ><a href="http://shop//mobile/'
.$row["products_id"].'-'.ftranslite($row["title"]).'/" >'.

$row["title"].'</a></p>
  <ul class="reviews-and-counts-grid">
  <li><img src="/images/eye-icon.png" /><p>'
.$row["count"].'</p></li>
  <li><img src="/images/comment-icon.png" /><p>'
.$count_reviews.'</p></li>
  </ul>
  <a class="add-cart-style-grid" tid="'
.$row["products_id"].'" ></a>
  <p class="style-price-grid" ><strong>'
.group_numerals($row["price"]).'</strong> руб.</p>
  <div class="mini-features" >
  '
.$row["mini_features"].'
  </div>
  </li>
  
  '
;
  
    
 }
    while (
$row mysql_fetch_array($result));
}    


?>
</ul>


<ul id="block-tovar-list" >

<?php
    
  $result 
mysql_query("SELECT * FROM table_products WHERE visible='1' ORDER BY $sorting $qury_start_num",$link);  

if (
mysql_num_rows($result) > 0)
{
 
$row mysql_fetch_array($result); 
 
 do
 {

if  (
$row["image"] != "" && file_exists("./uploads_images/".$row["image"]))
{
$img_path './uploads_images/'.$row["image"];
$max_width 150
$max_height 150
 list(
$width$height) = getimagesize($img_path); 
$ratioh $max_height/$height
$ratiow $max_width/$width
$ratio min($ratioh$ratiow); 
$width intval($ratio*$width); 
$height intval($ratio*$height);    
}else
{
$img_path "/images/noimages80x70.png";
$width 80;
$height 70;

 
// Количество отзывов 
$query_reviews mysql_query("SELECT * FROM table_reviews WHERE products_id = '{$row["products_id"]}' AND moderat='1'",

$link);  
$count_reviews mysql_num_rows($query_reviews);  
  echo 
'
  
  <li>
  <div class="block-images-list" >
  <img src="'
.$img_path.'" width="'.$width.'" height="'.$height.'" />
  </div>

  <ul class="reviews-and-counts-list">
  <li><img src="/images/eye-icon.png" /><p>'
.$row["count"].'</p></li>
  <li><img src="/images/comment-icon.png" /><p>'
.$count_reviews.'</p></li>
  </ul>
  
  <p class="style-title-list" ><a href="view_content.php?id='
.$row["products_id"].'" >'.$row["title"].'</a></p>
  
  <a class="add-cart-style-list" tid="'
.$row["products_id"].'" ></a>
  <p class="style-price-list" ><strong>'
.group_numerals($row["price"]).'</strong> руб.</p>
  <div class="style-text-list" >
  '
.$row["mini_description"].'
  </div>
  </li>
  
  '
;
  
    
 }
    while (
$row mysql_fetch_array($result));
}    

echo 
'</ul>';

if (
$page != 1){ $pstr_prev '<li><a class="pstr-prev" href="index.php?page='.($page 1).'">&lt;</a></li>';}
if (
$page != $total$pstr_next '<li><a class="pstr-next" href="index.php?page='.($page 1).'">&gt;</a></li>';


// Формируем ссылки со страницами
if($page 0$page5left '<li><a href="index.php?page='.($page 5).'">'.($page 5).'</a></li>';
if(
$page 0$page4left '<li><a href="index.php?page='.($page 4).'">'.($page 4).'</a></li>';
if(
$page 0$page3left '<li><a href="index.php?page='.($page 3).'">'.($page 3).'</a></li>';
if(
$page 0$page2left '<li><a href="index.php?page='.($page 2).'">'.($page 2).'</a></li>';
if(
$page 0$page1left '<li><a href="index.php?page='.($page 1).'">'.($page 1).'</a></li>';

if(
$page <= $total$page5right '<li><a href="index.php?page='.($page 5).'">'.($page 5).'</a></li>';
if(
$page <= $total$page4right '<li><a href="index.php?page='.($page 4).'">'.($page 4).'</a></li>';
if(
$page <= $total$page3right '<li><a href="index.php?page='.($page 3).'">'.($page 3).'</a></li>';
if(
$page <= $total$page2right '<li><a href="index.php?page='.($page 2).'">'.($page 2).'</a></li>';
if(
$page <= $total$page1right '<li><a href="index.php?page='.($page 1).'">'.($page 1).'</a></li>';


if (
$page+$total)
{
    
$strtotal '<li><p class="nav-point">...</p></li><li><a href="index.php?page='.$total.'">'.$total.'</a></li>';
}else
{
    
$strtotal ""
}

if (
$total 1)
{
    echo 
'
    <div class="pstrnav">
    <ul>
    '
;
    echo 
$pstr_prev.$page5left.$page4left.$page3left.$page2left.$page1left."<li><a class='pstr-active' href='index.php?

page="
.$page."'>".$page."</a></li>".$page1right.$page2right.$page3right.$page4right.$page5right.$strtotal.$pstr_next;
    echo 
'
    </ul>
    </div>
    '
;
}
    
?>


</div>

<?php    
    
include("include/block-footer.php");    
?>
</div>

</body>
</html>

Последний раз редактировалось Вадим Мошев; 13.05.2016 в 22:06.
inkognitik вне форума Ответить с цитированием
Старый 13.05.2016, 14:44   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от inkognitik Посмотреть сообщение
Знаете курс Жур Артур? Интернет магазин с нуля.
Кто не умеет, тот учит?)
В курсе есть хоть пара слов про дебаггинг? Вывод ошибок там, поиск неправильного кода, защита от дурака, тест запросов к базе?
========================
База то подключена?

Код:
$page = (int)$_GET['page'];
Если не передан номер страницы, то скрипт уже тут свернется клубочком и заплачет, юзай if — isset

Код:
$count = mysql_query("SELE...
если запрос сперва присвоить переменной, а не сразу скармливать мускуль-куери, то, в случае ошибки, можно вывести его на экран и вручную запустить в sql (phpmyadmin) и посмотреть то ли он ваще выводит и выводит ли.

Код:
"SELECT * FROM table_products WHERE visible='1' ORDER BY $sorting $qury_start_num "
У тебя в двух местах юзается этот самый сортинг и нигде не объявляется, это так задумано?

Код:
"SELECT * FROM table_reviews WHERE products_id = '{$row["products_id"]}' AND moderat='1'"
А фигурные скобки это типа оно вернет таки элемент массива и не сломается тут? Я просто не шарю в ПХП, это соседний раздел.

Код:
if  ($row["image"] != "" && file_exists("./uploads_images/".$row["image"]))
{
$img_path = './uploads_images/'.$row["image"];
$max_width = 200; 
$max_height = 200; 
 list($width, $height) = getimagesize($img_path); 
$ratioh = $max_height/$height; 
$ratiow = $max_width/$width; 
$ratio = min($ratioh, $ratiow); 
$width = intval($ratio*$width); 
$height = intval($ratio*$height);    
}else
{
$img_path = "/images/no-image.png";
$width = 110;
$height = 200;
}
Код из 90х, это давно решается на стороне клиента двумя строчками в CSS

Код:
 // Количество отзывов 
$query_reviews = mysql_query("SEL...
К этому моменту у вас уже 2 запроса к базе, это не смертельно... на на каждый товар запускать еще по запросу, это жопа. Поищите там курс жур-мур какой-нибудь про LEFTJOIN в SQL...
А еще вы грузите целиком эти отзывы, со всеми данными, с автором, контентом, датой и проч... только для того, чтобы посчитать кол-во записей
Код:
$sql = "SELECT count(id) FROM /*...*/";
$record = mysql_query($sql);
$count_reviews = mysql_result($record);
Код:
<ul id="block-tovar-list" >
о, а тут в два раза больше чем надо) Вы бы уж определились в каком виде вам надо выводить, в табличном или решеткой... Два одновременно то врятли кому уперлось. А ваще, лучше это оставлять работе клиента и через CSS менять тип отображения. Ну, на крайняк через JS.

А echo работает с многострочным текстом в php с одинарными кавычками? Или я спутал с перлом?

Кароч, дебагайте построчно, так быстрее будет, чем кто-то добрый будет сидеть, разворачивать у себя пых, поднимать и создавать базу как у вас, картинки там подгружать...
Ну и форматируйте код, этож нихрена же не понятно че где куда, как читать то это?
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
навигация stason4ikas Микроконтроллеры, робототехника, схемотехника, 3D принтеры 7 08.10.2016 13:33
Навигация Ekzamenator PHP 3 02.12.2013 21:47
Навигация Abbath1349 ASP.NET 0 22.12.2011 05:58
Навигация zmey1 PHP 1 18.08.2011 17:33
Навигация stck HTML и CSS 4 13.11.2010 03:50