大家好!我需要从 mysql 数据库中选择正确数量的特定项目。
这是我的架构 - http://i.stack.imgur.com/Jr7ky.jpg
这是我的查询:
$servBasketData = mysql_query("SELECT services_basket.sbasket_id, system_countries.country_name, system_services.service_name, system_podservice.podservice_name, system_packets.packet_name, system_packets.price_common, system_packets.price_econom, system_packets.price_standart, system_packets.price_vip, packets_basket.sbasket_id
FROM system_services INNER JOIN (system_podservice INNER JOIN (system_packets INNER JOIN (system_countries INNER JOIN (services_basket INNER JOIN packets_basket ON services_basket.sbasket_id = packets_basket.sbasket_id) ON system_countries.country_id = services_basket.country_id) ON system_packets.packet_id = packets_basket.packet_id) ON system_podservice.podservice_id = services_basket.podservice_id) ON system_services.service_id = services_basket.service_id ORDER BY services_basket.sbasket_id ASC;");
while ($result = mysql_fetch_array($servBasketData)) {
echo "<tr><td><center>".$result['sbasket_id']."</center></td><td><center>".$result['country_name']."</center></td><td><center>".$result['service_name']."</center></td><td><center>".$result['podservice_name']."/<center></td><td>";
echo "<tr><td><center>".$result['packet_name']."</center></td><td><center>".$result['price_common']."</center></td><td><center>".$result['price_econom']."</center></td><td><center>".$result['price_standart']."</center></td><td><center>".$result['price_vip']."</center></td>";
}
此代码返回如下数据:
1 |俄罗斯 |服务1 | podservice1 | 数据包1 |价格_普通_20 |经济价格30 |价格_标准_40 | Price_vip_50
1 |俄罗斯 |服务1 | podservice1 | 数据包2 |价格_普通_30 |经济价格40 |价格_标准_50 | Price_vip_60
1 |俄罗斯 |服务1 | podservice1 | 数据包3 |价格_普通_40 |经济价格50 |价格_标准_60 | Price_vip_70
1 |俄罗斯 |服务1 | podservice1 | 数据包4 |价格_普通_50 |经济价格 60 |价格_标准_70 | Price_vip_80
<小时/>2 |乌克兰 |服务1 | podservice1 | 数据包1 |价格_普通_20 |经济价格30 |价格_标准_40 | Price_vip_50
2 |乌克兰 |服务1 | podservice1 | 数据包2 |价格_普通_30 |经济价格40 |价格_标准_50 | Price_vip_60
2 |乌克兰 |服务1 | podservice1 | 数据包3 |价格_普通_40 |经济价格50 |价格_标准_60 | Price_vip_70
2 |乌克兰 |服务1 | podservice1 | 数据包4 |价格_普通_50 |经济价格 60 |价格_标准_70 | Price_vip_80
<小时/>...
所以,这不是我需要得到的。我需要获取这样的数据:
1 |俄罗斯 |服务1 | podservice1 |
数据包1 |价格_普通_20 |经济价格30 |价格_标准_40 | Price_vip_50
数据包2 |价格_普通_30 |经济价格40 |价格_标准_50 | Price_vip_60
数据包3 |价格_普通_40 |经济价格50 |价格_标准_60 | Price_vip_70
数据包4 |价格_普通_50 |经济价格 60 |价格_标准_70 | Price_vip_80
<小时/>2 |乌克兰 |服务1 | podservice1 |
数据包1 |价格_普通_20 |经济价格30 |价格_标准_40 | Price_vip_50
数据包2 |价格_普通_30 |经济价格40 |价格_标准_50 | Price_vip_60
数据包3 |价格_普通_40 |经济价格50 |价格_标准_60 | Price_vip_70
数据包4 |价格_普通_50 |经济价格 60 |价格_标准_70 | Price_vip_80
<小时/>所以我需要删除重复的数据。 我怎样才能做到这一点? (没关系 - 通过 php 或 mysql)
谢谢。
最佳答案
第一个和第二个输出之间的唯一区别是,第二个输出不包含 sbasket_id
、service_name
、podservice_name
。
您的问题可以使用 php 来解决,根据 sbacket_id 何时更改来控制输出内容和时间。
简单示例(请原谅错误)
$servBasketData = mysql_query("
SELECT services_basket.sbasket_id,
system_countries.country_name,
system_services.service_name,
system_podservice.podservice_name,
system_packets.packet_name,
system_packets.price_common,
system_packets.price_econom,
system_packets.price_standart,
system_packets.price_vip,
packets_basket.sbasket_id
FROM system_services
INNER JOIN (system_podservice
INNER JOIN (system_packets
INNER JOIN (system_countries
INNER JOIN (services_basket
INNER JOIN packets_basket ON
services_basket.sbasket_id = packets_basket.sbasket_id) ON
system_countries.country_id = services_basket.country_id) ON
system_packets.packet_id = packets_basket.packet_id) ON
system_podservice.podservice_id = services_basket.podservice_id) ON
system_services.service_id = services_basket.service_id
ORDER BY services_basket.sbasket_id ASC;");
$previous_sbasket_id = -1;
while ($result = mysql_fetch_array($servBasketData))
{
if($previous_sbasket_id != $result['sbasket_id'])
{
//echo here the header if needed
echo "<tr><td><center>".$result['sbasket_id']."</center></td><td><center>".$result['country_name']."</center></td><td><center>".$result['service_name']."</center></td><td><center>".$result['podservice_name']."/<center></td><td>";
}
//echo here everything else
echo "<tr><td><center>".$result['packet_name']."</center></td><td><center>".$result['price_common']."</center></td><td><center>".$result['price_econom']."</center></td><td><center>".$result['price_standart']."</center></td><td><center>".$result['price_vip']."</center></td>";
$previous_sbasket_id= $result['sbasket_id'];
}
关于php - 每隔一个选定项目输出 4 个选定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26324126/