我有2个表user_points
和users
。在用户中,我存储用户的详细信息
id | uid | fname | lname | pic
1 | 5TQ4G1 | Zen | D | img1.png
2 | ZIF852 | Mike | Lois | img2.png
3 | FW20H6 | Vicky | S | vick.jpg
4 | PCD8Q5 | Rocky | M | rocks.jpg
在user_points表中,我存储了用户选择的每个选项的值
id | user_id | opt1 | opt2 | opt3 | opt4 | opt5 | opt6
1 | 5TQ4G1 | 20 | 30 | 60 | | |
2 | ZIF852 | 20 | | 50 | 10 | |
3 | PCD8Q5 | | 10 | | | | 50
我想像这样显示结果
Zen - Image - opt1.png, opt2.png, opt3.png
Mike - Image - opt1.png, opt3.png, opt4.png
Rocky - Image - Opt2.png, opt6.png
我将有6个选项,每个选项都存储了图像opt1.png,opt2.png ...
我的代码是
<?php
$sql5 = "SELECT ud.id, ud.opt1, ud.opt2, ud.opt3, ud.opt4, ud.opt5, ud.opt6, u.uid, u.fname, u.pic FROM user_details ud LEFT JOIN users u ON ud.user_id=u.uid GROUP BY ud.user_id";
$result1 = mysqli_query($con, $sql5);
while($row1 = mysqli_fetch_assoc($result1)) {
echo "<div class='col-xs-9'>";
if($row1["pic"]=='') {
$img = "<img src='pics/profile.png' height='30px' alt='".$row1["fname"]."' title='".$row1["fname"]."' style='padding-right:5px;' />";
}
elseif($row1["pic"]!='') {
$img = "<img src='pics/".$row1["uid"]."/".$row1["pic"]."' height='30px' alt='".$row1["fname"]."' title='".$row1["fname"]."' style='padding-right:5px;'' />";
}
if($row1['opt1']!=NULL)
{
$options .= "<img src='img/opt1.png' height='15px' /> , ";
}
if($row1['opt2']!=NULL)
{
$options .= "<img src='img/opt2.png' height='15px' /> , ";
}
if($row1['opt3']!=NULL)
{
$options .= "<img src='img/opt3.png' height='15px' /> , ";
}
if($row1['opt4']!=NULL)
{
$options .= "<img src='img/opt4.png' height='15px' /> , ";
}
if($row1['opt5']!=NULL)
{
$options .= "<img src='img/opt5.png' height='15px' /> , ";
}
if($row1['opt6']!=NULL)
{
$options .= "<img src='img/opt6.png' height='15px' /> ";
}
echo $row1['fname']." - ".$img." - ".$options;
}
echo "</div>";
但是我得到了这样的结果
Zen - Image - opt1.png, opt2.png, opt3.png
Mike - Image - opt1.png, opt2.png, opt3.png, opt1.png, opt3.png, opt4.png
Rocky - Image - opt1.png, opt2.png, opt3.png, opt1.png, opt3.png, opt4.png, opt2.png, opt6.png
对于Zen
,它是正确的。对于Mike
,它会显示他的数据以及Zen's
数据,对于Rocky
,它会显示他的数据以及zen, Rocky
数据。哪个循环我应该纠正我没有得到。
答案 0 :(得分:1)
因为您使用
将值连接到$options
$options .= .....
暂停之后,初始化$options
变量以清除最后一个循环内容。
while($row1 = mysqli_fetch_assoc($result1)) {
$options = '';
答案 1 :(得分:1)
在添加字符串时,您需要最后清空$options
值
<?php
$sql5 = "SELECT ud.id, ud.opt1, ud.opt2, ud.opt3, ud.opt4, ud.opt5, ud.opt6, u.uid, u.fname, u.pic FROM user_details ud LEFT JOIN users u ON ud.user_id=u.uid GROUP BY ud.user_id";
$result1 = mysqli_query($con, $sql5);
while($row1 = mysqli_fetch_assoc($result1)) {
echo "<div class='col-xs-9'>";
if($row1["pic"]=='') {
$img = "<img src='pics/profile.png' height='30px' alt='".$row1["fname"]."' title='".$row1["fname"]."' style='padding-right:5px;' />";
}
elseif($row1["pic"]!='') {
$img = "<img src='pics/".$row1["uid"]."/".$row1["pic"]."' height='30px' alt='".$row1["fname"]."' title='".$row1["fname"]."' style='padding-right:5px;'' />";
}
if($row1['opt1']!=NULL)
{
$options .= "<img src='img/opt1.png' height='15px' /> , ";
}
if($row1['opt2']!=NULL)
{
$options .= "<img src='img/opt2.png' height='15px' /> , ";
}
if($row1['opt3']!=NULL)
{
$options .= "<img src='img/opt3.png' height='15px' /> , ";
}
if($row1['opt4']!=NULL)
{
$options .= "<img src='img/opt4.png' height='15px' /> , ";
}
if($row1['opt5']!=NULL)
{
$options .= "<img src='img/opt5.png' height='15px' /> , ";
}
if($row1['opt6']!=NULL)
{
$options .= "<img src='img/opt6.png' height='15px' /> ";
}
echo $row1['fname']." - ".$img." - ".$options;
$options = "";
}
echo "</div>";
答案 2 :(得分:1)
不是答案。评论太长了:
规范化的user_points表可能如下所示:
user_id opt val
1 1 20
1 2 30
1 3 60
2 1 20
2 3 50
2 4 10
3 2 10
3 6 50