PHP & SQL LEFT JOIN, когда я эхо, он отображает только контент с идентификатором 1 - PullRequest
0 голосов
/ 30 ноября 2018

Итак, в основном, у меня есть две таблицы: первая таблица, которая называется «brand», и она содержит столбцы «brand_id», «brand_name». Затем у меня есть вторая таблица «products», которая содержит много столбцов, но наиболее важной является «product_brand»
Таблица брендов:

Таблица продуктов:

Когда я использую этот код

$brand = mysqli_query($conn, "SELECT products.*,brand.brand_name FROM products LEFT JOIN brand ON products.product_brand = brand.brand_id")  or die(mysqli_errno($conn). '-'. mysqli_error($conn));

, тогда я пытаюсьэхо это так <?php echo $znacka['brand_name']; ?>

Когда я это делаю, он отображает только первый бренд на каждом продукте.

Не могли бы вы дать мне совет?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Я имел в виду, что он показывает один и тот же бренд на каждом продукте, точно так же, как как он отображает Но предполагается, что бренд_имя от бренда должен отображаться числом в столбце product_brand = brand_id

, но только JOINили ВНУТРЕННЕЕ СОЕДИНЕНИЕ не имело никакого значения

<div class="row">
            <?php while($znacka = mysqli_fetch_assoc($brand)) : ?>
            <?php while($product = mysqli_fetch_assoc($featured)) : ?>
            <div class="col-lg-4 box products">
                <h4>
                    <?php echo $product['title']; ?>
                </h4>
                <img src="<?php echo $product['image']; ?>" class="img-responsive" alt="<?php echo $product['title']; ?>" />
                <p class="list-price text-danger">Katalogová cena: <s> $<?php echo $product['list_price']; ?></s></p>
                <p class="price">Naše cena: $
                    <?php echo $product['price']; ?>
                </p>
                <button type="button" class="btn btn-success" data-toggle="modal" data-target="#details-<?php echo $product['id']; ?>">Detaily</button></div>
            <hr />

            <?php include 'details-modal-mk18.php' ?>
            <?php endwhile; ?>
            <?php endwhile; ?>
        </div>

код, где я его повторяю.

<div class="modal fade details-<?php echo $product['id']; ?>" id="details-<?php echo $product['id']; ?>" tableindex="-<?php echo $product['id']; ?>" role="dialog" aria-labelledby="details-1" aria-hidden="true">
<div class="modal-dialog modal-lg">
    <div class="modal-content">
        <div class="modal-header">
            <h4 class="modal-title text-center">
                <?php echo $product['title']; ?>
            </h4>
            <button class="close" type="button" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        </div>
        <div class="modal-body">
            <div class="container-fluid">
                <div class="row">
                    <div class="col-sm-6 box">
                        <div class="center-block">
                            <img src="<?php echo $product['image']; ?>" alt="<?php echo $product['title']; ?>" class="details img-responsive" />
                        </div>
                    </div>
                    <div class="col-sm-6">
                        <h4>Detaily</h4>
                        <p>
                            <?php echo $product['description']; ?>
                        </p>
                        <hr />
                        <p><strong>Cena:</strong> $<?php echo $product['price']; ?>
                        </p>
                        <p><strong>Značka:</strong>
                            <?php echo $znacka['brand_name']; ?>
                        </p>
                        <form action="add_cart.php" method="post">
                            <div class="form-group">
                                <div class="col/xs-3">
                                    <label for="quantity" id="quantity-label"><strong>Množství:</strong></label>
                                    <input type="text" class="form-control" id="quantity" name="quantity" />
                                </div><br/>
                                <div class="form-group">
                                    <label for="color"><strong>Barva:</strong></label>

                                    <select name="color" id="color" class="form-control">

                                        <option value="<?php echo $product['id']; ?>">
                                        <?php echo $product['colors']; ?>
                                        </option>

                                    </select>

                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
        <div class="modal-footer">
            <button class="btn btn-default" data-dismiss="modal">Zavřít</button>
            <button class="btn btn-warning" type="submit"><span class="glyphicon glyphicon-shopping-cart"></span>Přidat do košíku</button>
        </div>
    </div>
</div>

0 голосов
/ 30 ноября 2018

Если вам нужны все данные из обеих таблиц, удалите left .Для этого вы должны применить внутреннее соединение.

$brand = mysqli_query($conn, "SELECT products.*,brand.brand_name FROM products JOIN brand ON products.product_brand = brand.brand_id")  or die(mysqli_errno($conn). '-'. mysqli_error($conn));

Теперь вы можете использовать $znacka['brand_name'].

...