我有一个以这种方式存储的表中的数据:
level | name
1 | Name 1
1 | Name 2
1 | Name 3
2 | Name 4
2 | Name 5
5 | Name 6
5 | Name 7
10 | Name 8
我使用php选择数据,只需选择所有数据。
从我选择的数据中,我如何使用PHP组织和输出如下数据?
我试图按级别分组显示它。
因此,此处level 1
和level 2
为premium
级,level 5
为midlevel
,level 10
为budget
。我怎么能用php做到这一点?
按级别分组并给出标题是我被困的地方。你能帮帮我吗?
期望的结果:
Premium //All level 1,2
-------
Name 1
Name 2
Name 3
Name 4
Name 5
Mid //All level 5
-------
Name 6
Name 7
Budget //All level 10s
--------
Name 8
答案 0 :(得分:2)
$premium = array();
$mid = array();
$budget = array();
$sql = mysql_query("SELECT * FROM table1 ORDER BY level")
while ($row = mysql_fetch_assoc($sql)){
if ($row['level'] == 1 || $row['level'] == 2){
$premium[] = $row['name'];
}
else if ($row['level'] == 5){
$mid[] = $row['name'];
}
else if ($row['level'] == 10){
$budget[] = $row['name'];
}
}
echo 'Premium<br/>';
foreach ($premium as $val)
echo $val.'<br/>';
echo 'Mid<br/>';
foreach ($mid as $val)
echo $val.'<br/>';
echo 'Budget<br/>';
foreach ($budget as $val)
echo $val.'<br/>';
答案 1 :(得分:1)
假设您能够连接,您可以使用以下代码分为三个部分 使用myqsli数据库和php
<?php
$mid=0;
$premium=0;
$budjet=0;
$sql= "select * from table order by level";
if ($result = $mysqli->query($sql)) {
while ($row = $result->fetch_assoc()) {
if (($row['level']==1)&&($row['level']==2))
{
if($premium==0){
echo "Premium";
$premium=1;
}
}
if (($row['level']==5)
{
if($mid==0){
echo "MID";
$mid=1;
}
}
if (($row['level']==10)
{
if($budjet==0){
echo "Budjet";
$budjet=1;
}
}
echo $row['name']."<br>";
}
}
答案 2 :(得分:0)
使用数组。 试试这个:
$premium = "";
$midlevel = "";
$budget = "";
$query = "SELECT * FROM table_name";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
if($row['level'] == 1 || $row['level'] == 2)
$premium .= $row['name'];
else if($row['level'] == 5)
$midlevel .= $row['name'];
else if($row['level'] == 10)
$budget .= $row['name'];
}
echo "Premium : <br />".$premium;
按需要打印变量。
答案 3 :(得分:-1)
PHP 5.4+要求
如果您不使用PHP 5.4+,则需要将[]
更改为正确的array()
。
假设你使用一个包含所有行数组的$rows
变量,你可以这样做。
<?php
foreach ($rows as $row)
{
switch ($row['level']) {
case 1:
$premium[] = $row['name'];
break;
case 2:
$premium[] = $row['name'];
break;
case 5:
$midlevel[] = $row['name'];
break;
case 10:
$budget[] = $row['name'];
break;
}
}
一旦运行foreach
,您将得到三个具有您想要的名称的数组。 $premium
,$midlevel
和$budget
。
修改强>
使用你的while循环,你会这样做。虽然,我更喜欢上面的开关/案例。
<?php
$query = "SELECT * FROM table_name";
$result = mysql_query($query);
while($row = mysqli_fetch_array($result))
{
switch ($row['level']) {
case 1:
$premium[] = $row['name'];
break;
case 2:
$premium[] = $row['name'];
break;
case 5:
$midlevel[] = $row['name'];
break;
case 10:
$budget[] = $row['name'];
break;
}
}