За последние 24 часа нас посетили 22890 программистов и 1198 роботов. Сейчас ищут 876 программистов ...

Оцените скрипт

Тема в разделе "Беседы", создана пользователем MaksimMaksimov, 6 май 2019.

  1. MaksimMaksimov

    MaksimMaksimov Новичок

    С нами с:
    6 май 2019
    Сообщения:
    1
    Симпатии:
    0
    Добрый день. Так как первый раз пишу код,прошу дать характеристику данной работы, может что-то можно было сделать иначе, для быстрого времени загрузки либо другими методами можно было это реализовать. Данный скрип,если его можно так назвать, берет информацию с таблиц БД и перебирает их в нужном порядку, на выходе получаем одну таблицу,которая формировалась из 4 таблиц.БД связана с CMS OpenCart
    Код (Text):
    1. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    2. <?php
    3. header("Content-Type: text/html; charset=utf-8");
    4. require_once 'connection.php'; // подключаем скрипт
    5. // подключаемся к серверу
    6. $link = mysqli_connect($host, $user, $password, $database)
    7.     or die("Error bd ". mysqli_error($link));
    8. //кодировка
    9. $link ->set_charset('utf8');
    10. // выполняем операции с базой данных категории
    11. $sqlcategory = "SELECT `category_id`, `name` FROM `oc_category_description` WHERE 1 ORDER BY `oc_category_description`.`category_id` ASC";
    12. $resultcategory = mysqli_query($link, $sqlcategory) or die("Error". mysqli_error($link));
    13. $rowscategory = mysqli_num_rows($resultcategory); // количество полученных строк
    14. if($resultcategory)
    15. {
    16.     echo "<table><tr><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th>";
    17.        echo "<tr>";
    18.          for ($icategory = 0 ; $icategory < $rowscategory; ++$icategory){
    19.              $rowscategory = mysqli_fetch_row($resultcategory);
    20.              $sqlproductcategory = "SELECT * FROM `oc_product_to_category` ORDER BY `oc_product_to_category`.`category_id` ASC";
    21.             $resultproductcategory = mysqli_query($link, $sqlproductcategory) or die("Error". mysqli_error($link));
    22.              $rowsproductcategory = mysqli_num_rows($resultproductcategory); // количество полученных строк
    23.              $sqlproduct = "SELECT `product_id`, `model`, `stock_status_id`, `manufacturer_id`, `price`, `weight`, `length`, `width`, `height` FROM `oc_product` WHERE 1";
    24.              $sqlmanufacturer = "SELECT `manufacturer_id`, `name` FROM `oc_manufacturer` WHERE 1 ORDER BY `oc_manufacturer`.`manufacturer_id` ASC";
    25.             echo "<th colspan='8'>$rowscategory[1]</th>";
    26.               echo "<tr>";
    27.               echo "<tr><th>Код товара</th><th>Модель</th><th>Остаток</th><th>Производитель</th><th>Стоимость</th><th>Вес</th><th>Длина</th><th>Ширина</th><th>Высота</th>";
    28.               echo "<tr>";
    29.          for($iproductcategory=0;$iproductcategory<$rowsproductcategory;++$iproductcategory){
    30.              $rowsproductcategory = mysqli_fetch_row($resultproductcategory);
    31. $resultproduct = mysqli_query($link, $sqlproduct) or die("Error". mysqli_error($link));
    32. $rowsproduct = mysqli_num_rows($resultproduct); // количество полученных строк
    33. $rowsproductt=$rowsproduct;
    34.   $rowsproducttt=$rowsproduct;
    35.          if($rowscategory[0]==$rowsproductcategory[1]){
    36.              echo "<td>$rowsproductcategory[0]</td>";
    37.              for($i=0;$i<$rowsproduct;++$i)
    38.              {
    39.                  $rowsproduct = mysqli_fetch_row($resultproduct);
    40.                  if($rowsproduct[0]==$rowsproductcategory[0])
    41.                  for ($j=1; $j <9 ; $j++) {
    42.                       if(($j==2)&&($rowsproduct>1))
    43.                           echo "<td>$rowsproduct[$j]  шт</td>";
    44.                   else{
    45. $resultmanufacturer = mysqli_query($link, $sqlmanufacturer) or die("Error". mysqli_error($link));
    46. $rowsmanufacturer = mysqli_num_rows($resultmanufacturer); // количество полученных строк
    47.                  if((($j==4)||($j==6)||($j==7)||($j==8))&&($rowsproduct>1))
    48.                          $rowsproduct[$j]=round($rowsproduct[$j],1);
    49.                      if(($j==5)&&($rowsproduct>1))
    50.                          $rowsproduct[$j]=round($rowsproduct[$j],6);
    51.                      if($j==3){
    52.                           if(($rowsproduct[$j]<10)&&($rowsproduct>1))
    53.                                  echo "<td>Не указано</td>";
    54.                          for ($b=0; $b < $rowsmanufacturer; $b++) {
    55.                              $rowsmanufacturer= mysqli_fetch_row($resultmanufacturer);
    56.                              if($rowsproduct[$j]==$rowsmanufacturer[0])
    57.                                  echo "<td>$rowsmanufacturer[1]</td>";
    58.                          }
    59.        }
    60.                          else
    61.                              if(($j==4)&&($rowsproduct>1))
    62.                                  echo "<td>$rowsproduct[$j] грн</td>";
    63.                                  else
    64.                                  echo "<td>$rowsproduct[$j]</td>";        
    65.                                     }
    66.                  }
    67.              }
    68.              echo "<tr>";
    69.          }
    70.  
    71.      }
    72.          echo "<tr>";
    73.          }
    74.     echo "</table>";
    75. }
    76. // очищаем результат
    77. // очищаем результат
    78.     mysqli_free_result($resultmanufacturer);
    79.     mysqli_free_result($resultcategory);
    80.     mysqli_free_result($resultproductcategory);
    81.     mysqli_free_result($resultproduct);
    82. // закрываем подключение
    83. mysqli_close($link);
    84. ?>
     
    #1 MaksimMaksimov, 6 май 2019
    Последнее редактирование: 6 май 2019
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Запросы в цикле- зло.
    Надо сделать один запрос и получить все что нужно

    А так оценивать и нечего...
     
  3. paschaopencart

    paschaopencart Активный пользователь

    С нами с:
    18 май 2018
    Сообщения:
    118
    Симпатии:
    16
    Адрес:
    Урал
    1. все в одну кучу: мед, пчелы и прополис.
    2. Опенкарт = MVC
    3. Если была попытка создать файл аля-xmls (либо подобие прайс-листа), то она успешно провалена... "пилите гирю... она золотая"