-1

この方法で保存されたテーブルにデータがあります。

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 1level 2premiumレベルでlevel 5ありmidlevel、 とlevel 10budgetです。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
4

4 に答える 4

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/>';
于 2013-11-08T06:25:08.807 に答える
1

次のコードを使用して、myqsli データベースと php に接続できると仮定して、3 つの部分にグループ化できます。

  <?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>";
        }
    }
于 2013-11-08T06:41:44.143 に答える
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;

必要に応じて変数を出力します。

于 2013-11-08T06:21:34.027 に答える
-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を実行すると、好きな名前の 3 つの配列が作成されます。$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;
    }
}
于 2013-11-08T06:23:33.170 に答える