выводятся только первые строки таблицы

91
22 января 2022, 12:30

в БД есть таблица с данными продуктов из которых для каждого продукта должны выводиться определённые данные. Но в продуктах все данные повторяются

    $length = R::count('products');
    $connect = mysqli_connect("localhost", "root", "", "magnete");  
    $result = mysqli_query($connect, "SELECT `id` FROM `products`");
    $r = mysqli_fetch_assoc($result);
    $imgresult = mysqli_query($connect, "SELECT `image` FROM `products`");
    $ri = mysqli_fetch_assoc($imgresult);
    $nameresult = mysqli_query($connect, "SELECT `name` FROM `products`");
    $rn = mysqli_fetch_assoc($nameresult);
    $priceresult = mysqli_query($connect, "SELECT `price` FROM `products`");
    $rp = mysqli_fetch_assoc($priceresult);
    $fromresult = mysqli_query($connect, "SELECT `from` FROM `products`");
    $rf = mysqli_fetch_assoc($fromresult);
    $product1 = array(
        "name" => $rn['name'],
        "id" => $r['id'],
        "price" => $rp['price'],
        "image" => $ri['image'],
        "link" => $rf['from'],
        "category" => 'texnika'
    );
    $product2 = array(
        "name" => $rn['name'],
        "id" => $r['id'],
        "price" => $rp['price'],
        "image" => $ri['image'],
        "link" => $rf['from'],
        "category" => 'texnika'
    );

это данные о продуктах. В нём и нужно всё делать

<?php for ($i=0; $i < $length; $i++) { ?> 
    <div class="products">
        <img src=<?php echo '"'; print_r($product[$i]['image']); echo '"'; ?> >
        <h2><?php print_r($product[$i]['name']) ?></h2>
        <p><?php print_r($product[$i]['price']) ?></p>
        <button href=<?php echo '"'; print_r($product[$i]['from']); echo '"'; ?>>на сайт</button>
        <button href='product.php'>больше</button>
    </div>
<?php } ;?>

А это всё выводит на экран.

я пользуюсь redbean-ом.

Answer 1

Просто вы запрашиваете только первую строку результата. Чтобы вывести остальные строки результата надо делать что-то похожее

if ($result = mysqli_query($connect, $sql)) {
    while($rf = mysqli_fetch_assoc($result)){
    }
}
READ ALSO
Как разгрузить веб-сервер от ajax?

Как разгрузить веб-сервер от ajax?

Сейчас на сайте всё происходит (автообновление статистики, обмен сообщениями и тд) через AJAXЗнаю, способ не совсем элегантный, но рабочий

94
Динамические запросы с параметрами в MySQL

Динамические запросы с параметрами в MySQL

Курил документацию по MySQL и не до конца понял, как передавать аргументы в динамический запрос

66
Не подключается к MySQL серверу

Не подключается к MySQL серверу

Не могу подключиться к удаленной БД mysql

177