私はカテゴリを持つベンダー連絡先データベースを構築しようとしています。さまざまなベンダーが複数のカテゴリに分類されています。私はテーブルを次のように構成しました:すべてのCatorgoriesで連絡先データベースを表示します。 PHP SQL
名前_ベンダー|カテゴリ1 |カテゴリ2 |カテゴリ3 |
John Smith | 1 | 0 | 1 |
配管ジム| 0 | 0 | 1 |
私の現在のコード
$category_Title_1 = "Appliance Repair"; $category_1 = "Category_1"; $category_Title_2 = "Handyman"; $category_2 = "Category_2"; $category_Title_3 = "Plumber"; $category_3 = "Category_3"; $result = mysqli_query($conn,"SELECT * FROM `vendors` WHERE ".$category_1 ."='1'ORDER BY Name_Vendor ASC"); $row_cnt = $result->num_rows; if ($row_cnt == 0){echo "";} else { echo "".$category_Title_1.""; while($row = mysqli_fetch_array($result)) { echo $row['Name_Vendor']; echo "";} $result = mysqli_query($conn,"SELECT * FROM `vendors` WHERE ".$category_2 ."='1'ORDER BY Name_Vendor ASC"); $row_cnt = $result->num_rows; if ($row_cnt == 0){echo "";} else { echo "".$category_Title_2.""; while($row = mysqli_fetch_array($result)) { echo $row['Name_Vendor']; echo "";} $result = mysqli_query($conn,"SELECT * FROM `vendors` WHERE ".$category_3 ."='1'ORDER BY Name_Vendor ASC"); $row_cnt = $result->num_rows; if ($row_cnt == 0){echo "";} else { echo "".$category_Title_3.""; while($row = mysqli_fetch_array($result)) { echo $row['Name_Vendor']; echo "";}
これは単なる基本的な考え方です。私の連絡先データベースには電話番号、電子メールなどのフィールドがあります
カテゴリ番号が大きくなってきたのを見て、私は同じページ内で同じコードを何度もコピーする必要がない方法を探していますすべてのカテゴリを表示するには
あなたが探していることはアレイまたは2に連動してループであるような音。 – Newd
カテゴリを配列に配置し、上の冗長なコーディングの問題を解決するforeachループを使用して、これらのカテゴリをループします。すべての結果をキー、値のペア配列に格納することができます。ここで、キーはカテゴリです。&valueは実行されたクエリの結果です – mcv
データを正規化するとコードが簡単になります。 –