0

単一のクエリからデータベース内のテーブルにエコーされるテーブルがあり、次のテーブルをエコーアウトします。

http://www.skulldogs.com/dev/testview.php

たとえば、「mainToon」の名前が一致する正しい緑色の行の下に「黄色」の行を並べ替えたい:

高電圧

--リアルマッコイ

--Cpt フック

リアザル

-- バレサイド

上記のページをエコーする私のコードは次のとおりです。

<?php

  $result = mysql_query("SELECT * FROM `members`");
  echo "<table border='1'>
  <tr>
  <th>Character ID</th>
  <th>Name</th>
  <th>MainToon</th>
  <th>toonCategory</th>
  </tr>";
    while ($row = mysql_fetch_array($result)) {
        $characterID = $row['characterID'];
        $name = $row['name'];
        $startDateTime = $row['startDateTime'];
        $logonDateTime = $row['logonDateTime'];
        $logoffDateTime = $row['logoffDateTime'];
        $location = $row['location'];
        $role = $row['role'];
        $vouchedBy = $row['vouchedBy'];
        $positionHeld = $row['positionHeld'];
        $remarks = $row['remarks'];
        $afkNotice = $row['afkNotice'];
        $toonCategory = $row['toonCategory'];
        $mainToon = $row['mainToon'];
        $watch = $row['watch'];

    if ($toonCategory == 'Main Toon') {
        echo "<tr bgcolor='#00FF00'>"; }
    else {
        echo "<tr bgcolor='#FFFF00'>"; }
    echo "<td>" . $characterID . "</td>";
    echo "<td>" . $name . "</td>";
    echo "<td>" . $mainToon . "</td>";
    echo "<td>" . $toonCategory . "</td>";
    echo "</tr>";
  }
    echo "</table>";

?>

現時点では、このテーブルを適切に表示する方法がわかるまで、他のデータをエコーし​​ません。このようにできますか?

これは私がテーブルを表示したい方法です;

http://www.skulldogs.com/dev/mockup.php

4

2 に答える 2

4

SQL に句を追加ORDER BYします。

SELECT * FROM `members` ORDER BY toonCategory;

「メイントゥーン」の上下に他の値がある場合は、ブール値で注文できます。

SELECT * FROM `members` ORDER BY toonCategory = 'Main Toon' DESC;

編集:

例を挙げたので、あなたが何を求めているかがわかります。試してください:

SELECT * FROM `members` ORDER BY CONCAT(MainToon, Name);

空白が空の文字列の場合、または:

SELECT * FROM `members` ORDER BY COALESCE(MainToon, Name) DESC, Name;

空白行が null の場合。

于 2013-02-25T23:37:16.090 に答える
1

SELECT * FROM membersORDER BY toonCategory; を試してください。

于 2013-02-25T23:38:33.537 に答える