Показать сообщение отдельно
  #7 (permalink)  
Старый 22.02.2017, 01:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Словами можно пояснить чего это такое, без кода, ибо он просто муть какая-то?

Я не знаю чего вы там выгребаете из базы и почему куча таблиц, поэтому не на этом примере, а дальше уж не знаю как.

1) Представленный список имен, значениями опций которого также имена, в базе по такому запросу "SELECT names from my_base" имеет право на существование только в том случае, если значения поля таблицы "names" принадлежат записям с уникальными значениями. Но при таком раскладе список может оказаться слишком большим по размеру (сотни Марин, Андреев, ...) и вряд ли кто-то станет в нем разбираться. А ввиду того, что имена есть значения не уникальные такой список теряет всякий смысл.

2) Предположим, что имена в выборке принадлежат уникальным записям, а по списку имен нужно будет во всех записях таблицы "my_base" найти записи у которых поле "names" содержит имя выбранное в списке. Но для этого список должен содержать только уникальные значения, то есть в нем не должно быть повторяющихся имен. Для запрос должен выбрать из таблицы только уникальные значения и должен выглядеть так:

$result = $connection->query("SELECT DISTINCT names FROM my_base");


3) Если поле формы не имеет имени, то оно не будет передано на север, то есть значения из списка <select class="names" id="N'.$x.'"> просто не будет. Поэтому назовем его "name" - <select class="names" name="name">. Предположим, что данный список уже был у клиента и он выбрал в нем некое имя отправив форму методом GET. По полученному GET запросу сервер произведет поиск в этой таблице, отдаст результат клиенту наряду со списком, полученный запросом как показано выше. Строя сам список будет проверять совпадения значения запроса и значения из базы:

$selected = isset($_GET['name']) ? $_GET['name'] : null; 
$select = '<select class="names" name="name"><option value="">Выберите имя...</option>';

while ($row = mysql_fetch_assoc($result)) $select .= '<option value="'.$row['names'].'" '.
        ($row['names']==$selected ? 'selected' : null).'>'.$row['names'].'</option>';

echo $select . '</select>';
Ответить с цитированием