Я желаю получить простой индекс более или менее с моим программным обеспечением для заметок на PHP, у каждой заметки есть поле «language» для языка программирования, на котором он написан. Когда я повторяю каждую запись в цикле while, я не уверен как я бы перечислил категории из них, такие как:
PHP: Note 1 Note 5 SQL: Note 2 Note 3
Мне нужно разместить все записи во временном массиве с помощью s, например?
if($field['language'] == "PHP") $PHPsection[] = $field;
Хотя это не выглядит лучше, так как мне нужно жестко кодировать каждый раздел. Я застрял.
вы можете группировать уже в базе данных. или сортировать по разделу, а затем перебирать и выводить правильный код разделения при изменении раздела. временным массивом также является решение. учитывая ваш пример кода maby, это может указывать на одно возможное directino (хотя временный массив, конечно, не является изящным решением, но если данные не так уж и важны)
<? $result = array(); $result[] = array('section' => 'php','note' => 'bla'); $result[] = array('section' => 'php','note' => 'bla'); $result[] = array('section' => 'perl','note' => 'bla'); $result[] = array('section' => 'java','note' => 'bla'); $grouped = array(); for($i=0;$i<count($result);$i++) { $grouped[$result[$i]['section']][] = $result[$i]['note']; } print_r($grouped); ?>
Похоже, вам нужно сделать таблицу поиска здесь. Например, следующее.
Note_id | Language_id --------+------------ 1 | 1 1 | 4 2 | 3 3 | 1
Затем это связывает эти две таблицы
Note_id | Note_Name| ... --------+----------+---- 1 | Testing | ... 2 | Groceries| ... Language_ID | Language ------------+--------- 1 | English 2 | German 3 | Klingon
И оттуда вы можете писать такие запросы, как:
SELECT Note_name, Language FROM languages l, notes n, language_note_lookup lnl WHERE l.Language_ID = lnl.Language_ID AND n.Note_ID = n.Note_ID AND l.Language = "German"
Вы также можете легко получить список всех языков, просто сделав
SELECT Language FROM languages