janfichter
@janfichter
веб-мастер

Как вывести рандомно 10 товаров с помощью PhpExcel из файла?

У меня есть php скрипт вывода товаров из файла эксель на сайт, без использования БД, с помощью библиотеки PhpExcel. Все работает отлично, но товаров в списке может быть очень много и встал вопрос о выводе рандомно 10 товаров из списка. Как это реализовать? Нужны примеры.

<?php
 
require_once 'PHPExcel-1.8/Classes/PHPExcel.php';
$excel = PHPExcel_IOFactory::load('catalog.xlsx');
 
$excel->setActiveSheetIndex(0);

echo "<table border='1'>";

$i = 2;

while( $excel->getActiveSheet()->getCell('A'.$i)->getValue() != "") {
    $description = $excel->getActiveSheet()->getCell('A'.$i)->getValue();
    $image = $excel->getActiveSheet()->getCell('B'.$i)->getValue();
    $price_new = $excel->getActiveSheet()->getCell('C'.$i)->getValue();
    $price_old = $excel->getActiveSheet()->getCell('D'.$i)->getValue();
    $discount = $excel->getActiveSheet()->getCell('F'.$i)->getValue();
    
    echo "
        <tr>
            <td>".$description."</td>
            <td><img src='images/".$image."' width='150' height='150'></td>
            <td>".$price_new."</td>
            <td><s>".$price_old."</s></td>
            <td>".$discount."%</td>
        </tr>
    ";
    $i++;
}

echo "</table>";

?>
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
@Acvoloe
Можно попробовать так реализовать

<?php
 
require_once 'PHPExcel-1.8/Classes/PHPExcel.php';
$excel = PHPExcel_IOFactory::load('catalog.xlsx');
 
$excel->setActiveSheetIndex(0);

echo "<table border='1'>";

$count = 0;

for ($i=2; $excel->getActiveSheet()->getCell('A'.$i)->getValue() != ""; $i++) $count = $i;


for ($a=0; $a < 10; $a++) { 
    $key = rand(2,$count);

    $description = $excel->getActiveSheet()->getCell('A'.$key)->getValue();
    $image = $excel->getActiveSheet()->getCell('B'.$key)->getValue();
    $price_new = $excel->getActiveSheet()->getCell('C'.$key)->getValue();
    $price_old = $excel->getActiveSheet()->getCell('D'.$key)->getValue();
    $discount = $excel->getActiveSheet()->getCell('F'.$key)->getValue();
    
    echo "
        <tr>
            <td>".$description."</td>
            <td><img src='images/".$image."' width='150' height='150'></td>
            <td>".$price_new."</td>
            <td><s>".$price_old."</s></td>
            <td>".$discount."%</td>
        </tr>
    ";
}

echo "</table>";

?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы