我对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
}
?>
答案 0 :(得分:0)
而不是使用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
}