0

頭が回らない。

私はこのデータベーステーブルを持っています:

category_id
category_name
steps_description

今、このような形式で表示したい

Catgeory 1
Then all steps under it

Catgory2
then all steps under it

1つのmysqlクエリでそれを行うことはできますか?

PHPでループする方法を教えてください。

編集:
私はオブジェクト形式、つまりオブジェクトのコレクションでデータを取得しました

次のような結果が必要です。

for all categories {

<table><tr><th>Catgory Name </th></tr>
<tr> <td>Step1 </td> </tr>
<tr> <td>Step2 </td> </tr>
<tr> <td>Step3 </td> </tr>
</table>
}

そのようなものですが、1つのクエリで。

4

2 に答える 2

2

あなたが何を言っているのか正確にはわかりませんが、とにかくやってみます。テーブル内には、一意ではない多くのカテゴリ名があると思います。そして、あなたはそれらのそれぞれのために多くのステップを持っています。次に、すべてのカテゴリのテーブルを作成します。これが正しければ、次のようなことを試すことができます。

    $db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    $stmt = $db->query("SELECT * FROM `table`");

    $arr_data = array();
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $arr_data[$row['category_name']][] = $row['steps_description'];
    }
    foreach ($arr_data as $cat) {
        foreach ($cat as $step) {
            $str_steps .= '<tr><td>'.$step.'</td></tr>';
        }
        echo '<table>'.$str_steps.'</table>';
        $str_steps = '';
    }
于 2012-09-05T06:50:10.837 に答える
1

PDOを使用して、行を接続およびフェッチします。

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$stmt = $db->query("SELECT * FROM `table`");

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo "<table><tr><td>".$row['category_name']." ".$row['category_id']."</td></tr>";
    echo "<tr><td>".$row['steps_description']."</td></tr></table>";
    echo "<br /><br />"
}

PDOについて詳しく知る必要がある場合は、この素晴らしいチュートリアルをお読みください。

于 2012-09-05T06:24:22.843 に答える