首页 > 解决方案 > Mysqli_query 查看所有用户的最后一张图片

问题描述

我有 mysqli_query 的问题。当最后一个用户上传图片时,所有用户都有最后一张图片。

我写的这段代码:

        <?php
        $query = mysqli_query($soci->con, "SELECT soci.*, (SELECT full_path FROM soci_media WHERE id = soci.immagine_profilo) AS immagine_profilo_file FROM soci");
        while($socio = mysqli_fetch_assoc($query)) {

            ?>
            <div class="col-sm-12 col-md-6 col-lg-4 single_socio pb-3">
                <?php if($soci->user_data['immagine_profilo_file'] == '') { ?>
                    <img src="<?php echo get_site_url(); ?>/wp-content/themes/test/images/user.png" alt="" class="default_image img-fluid" />
                <?php } else { ?>
                    <img src="<?php echo get_site_url(); ?>/uploads<?php echo $soci->user_data['immagine_profilo_file']; ?>" alt="" class="default_image img-fluid" />
                <?php } ?>
                <h2><?php echo $socio['nome']; ?> <?php echo $socio['cognome']; ?></h2>
            </div>
            <?php
        }
        ?>

截图表数据库和结果

标签: phpmysql

解决方案


而不是使用 select 子句来执行另一个查询(它将不起作用)。你应该加入表格。如果没有个人资料图像,我使用左连接来避免没有值。

    SELECT soci.*,soci_media.full_path AS immagine_profilo_file 
    FROM soci
    LEFT JOIN soci_media ON soci.immagine_profilo = soci_media.id

您需要像这样替换您的查询:

 $query = mysqli_query($soci->con, "SELECT soci.*,soci_media.full_path AS immagine_profilo_file FROM soci LEFT JOIN soci_media ON soci.immagine_profilo = soci_media.id");

此外,您需要分配当前变量:

while($socio = mysqli_fetch_assoc($query)) {

    ?>
    <div class="col-sm-12 col-md-6 col-lg-4 single_socio pb-3">
        <?php if($socio['immagine_profilo_file'] == '') { ?>
            <img src="<?php echo get_site_url(); ?>/wp-content/themes/test/images/user.png" alt="" class="default_image img-fluid" />
        <?php } else { ?>
            <img src="<?php echo get_site_url(); ?>/uploads<?php echo $socio['immagine_profilo_file']; ?>" alt="" class="default_image img-fluid" />
        <?php } ?>
        <h2><?php echo $socio['nome']; ?> <?php echo $socio['cognome']; ?></h2>
    </div>
    <?php
} 

推荐阅读