3

そのため、私のWebサイトでは、ユーザーが連絡先リストを作成できるようになり、ユーザー名のカテゴリを追加しました。現在、SQLクエリから生成された連想配列のwhileループを使用して連絡先のリストを表示しています。

したがって、次のようになります。

Contacts:
Contact 1 
Contact 2
Contact 3

これで、データベースに連絡先のカテゴリの新しい列ができましたが、それらの順序を理解できず、連絡先カテゴリの名前を表示できません。私はそれをこのように見せようとしています:

Contacts:
Category 1
Contact 1
Contact 2
Contact 3
Category 2
Contact 1
Contact 2
Contact 3

あなたがそれを必要とするならば私の実際のコード:

<?php
                //START CONTACTS LOOP       
            $contacts_query = "SELECT id, name FROM contacts WHERE ownerid = '$userID' ORDER BY `name` ASC";
            $run_contacts_query = mysql_query($contacts_query);

            if($run_contacts_query){

                while($c_data = mysql_fetch_assoc($run_contacts_query)){
                    $id = $c_data['id'];
                    $name = $c_data['name'];
                    ?>
                    <li><a href="contact.php?id=<?=$id?>"><?=$name?></a></li>
                    <?php
                    }} //END CONTACTS LOOP 
            ?>
4

3 に答える 3

4

また、カテゴリを取得し、最初にカテゴリで、次に名前で並べ替えます。そして、カテゴリが最後のものと異なるかどうかを確認します。

$contacts_query = "SELECT id, name, category";
$contacts_query.= " FROM contacts";
$contacts_query.= " WHERE ownerid = '$userID'";
$contacts_query.= " ORDER BY `category`, `name` ASC";

$run_contacts_query = mysql_query($contacts_query);

if($run_contacts_query) {
    $currentCategory = null;

    while($c_data = mysql_fetch_assoc($run_contacts_query)){
        if ($c_data['category'] != $currentCategory) {
            echo '<li>' . $c_data['category'] . '</li>';
            $currentCategory = $c_data['category'];
        }

        echo '<li><a href="contact.php?id=' . $id . '">' . $name . '</a></li>';
    }
} 
于 2012-07-28T14:28:11.640 に答える
0

最良の方法は、スキーマ内のさまざまなテーブルを使用して連絡先とカテゴリを格納することだと思います。

 SELECT id, name FROM contact_categories WHERE ownerid = '$userID' ORDER BY `name` ASC;

その後

 SELECT id, name FROM contacts WHERE ownerid = '$userID' and contact_categoryid = '$catid';
于 2012-07-28T14:27:54.333 に答える
0

所有者IDとカテゴリを介して連絡先を取得するには、SQLクエリを変更する必要があります。

<?php
            //CHANGE QUERY TO       
        $contacts_query = "SELECT id, name FROM contacts WHERE ownerid = '$userID' AND category = '$category' ORDER BY `name` ASC";

        $run_contacts_query = mysql_query($contacts_query);

        if($run_contacts_query){
            //You need to echo category here
            print("<h3>".$category.</h3>");

            while($c_data = mysql_fetch_assoc($run_contacts_query)){
                $id = $c_data['id'];
                $name = $c_data['name'];
                ?>
                  <li><a href="contact.php?id=<?=$id?>"><?=$name?></a></li>
                <?php
                }} //END CONTACTS LOOP 
        ?>

データベースにカテゴリフィールドを追加し、さまざまなカテゴリでクエリを呼び出します

于 2012-07-28T14:29:59.143 に答える