Я пытаюсь создать базу данных контактов поставщиков с категориями. Различные поставщики отмечены в более чем одной категории. Я структурировал свою таблицу следующим образом:
Имя_Вендор | Категория_1 | Категория_2 | Категория_3 |
Джон Смит | 1 | 0 | 1 |
Сантехник Джим | 0 | 0 | 1 |
Мой текущий код
$ category_Title_1 = "Ремонт устройства"; $ category_1 = "Category_1"; $ category_Title_2 = "Разнорабочий"; $ category_2 = "Category_2"; $ category_Title_3 = "Сантехник"; $ 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 "";} еще {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 "";} еще {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 "";} еще {echo "". $ category_Title_3. ""; while ($ row = mysqli_fetch_array ($ result)) {echo $ row ['Name_Vendor']; echo "";}
Это просто основная идея. В моей базе контактов есть больше полей, включая номер телефона, адрес электронной почты и т. Д.
Видя, как значительно выросли номера наших категорий, я ищу способ не копировать один и тот же код несколько раз на одной и той же странице, чтобы отобразить все категории.
$keyValuePairArray = {
'key1' => 'value1',
'key2' => 'value2',
...
};
foreach($keyValuePairArray as $key=>$value){
//do whatever it is that you're doing
//repetitively in your code above
//if you don't understand this try using var_dump on your array
//and echo out the $key and $value so that you might better understand
//or research about all the items I have mentioned previously
}
Других решений пока нет …