26.05.2015, 09:19
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от makalet
|
laimas, в смысле, определяться? Если на вывод данных, то по имени селекта. Если я понял правильно
|
Список на странице, это всего лишь элемент для выбора. Но он что пассивен для сервера или же как принадлежащий форме будет отправлен на сервер? А если будет отправлен, то сервер получит выбранное в нем значение. А у вас значения опций списка, это $Manufacture, но не ID. Так как же поймет сервер при получении формы что выбрано? Поэтому еще раз вопрос - что определят товар в вашей базе, какое поле?
|
|
26.05.2015, 09:28
|
Аспирант
|
|
Регистрация: 25.05.2015
Сообщений: 76
|
|
laimas, скорее всего ID должен определять товар. Я передавал $Manufacture и $Model для того, чтобы записать в другую таблицу. Затем сделаю распечатку чека на выбранные комплектующие. Если я передам ID, то получу в поле только ID, но как записать вместо этого айди соответствующий товар с ID, который находится в таблице с товарами(например, процессоров).
У меня сборка для комплектации находится в другой таблице. Там поля типа процессор, кулер и т.д. Вот я и хочу записать значение всех селектов в столбцы
Последний раз редактировалось makalet, 26.05.2015 в 09:31.
|
|
26.05.2015, 09:32
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Сообщение от laimas
|
что определят товар
|
Узость мышления детектед. Без всяких ключей можно получить нужный кортеж имея все необходимые параметры на входе.
Профтыкать в равенство where все пары какие имеются и получишь ту самую единственную строку.
Для расширения мышления: работа через id всего лишь вариант оптимизации и повышения эффективности. Для отождествления записи в таблице никакие ID нахер не нужны. Без них все отождестволяется нормально как и предусмотрено идеей SQL.
|
|
26.05.2015, 09:36
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Сообщение от makalet
|
Если я передам ID, то получу в поле только ID, но как записать вместо этого айди соответствующий товар с ID, который находится в таблице с товарами(например, процессоров).
|
Еще один забрел не на тот форум. Вам на sql.ru сперва, а потом уже ява-скрипты...
|
|
26.05.2015, 09:41
|
Аспирант
|
|
Регистрация: 25.05.2015
Сообщений: 76
|
|
kostyanet, возможно. Ещё надо учиться, учиться, учиться. Да, у меня ужасный, отвратительный, гнилой и т.п. код, но для меня задача остается актуальной. Картинки, цена выбранного товара я получаю. Остается скрывать ИЗНАЧАЛЬНО цену и картинку до тех пор, пока не будет выбран товар в селекте.
|
|
26.05.2015, 09:44
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Вы не собираетесь учиться, вам надо домучить свою бредятину чтобы она завтра работала, а что будет послезавтра - о том думать нация не велит. А послезавтра у вас будет не 6 id в дата-тегах, а 66, а после-после-завтра 666 и так далее. Единственная надежда что завтра и тем более послезавтра не наступят никогда и только день сурка ваша надежда.
|
|
26.05.2015, 09:46
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от makalet
|
скорее всего ID должен определять товар.
|
Не скорее всего, а именно ОН! А значит список должен формироваться таким:
<select class='chosen' id='chosenmak' name='maker' >
<option value="" value='' data-price=''>-- Выбрать --</option>
<?php
foreach ($arr_get as $value) echo '<option data-price="'.$value['Price'].'" data-image="'.PATH_IMAGE.$value['photo'].'" value="'.$value['ID'].'">'.$value['Manufacture']." ".$value['Model'].'</option>';
?>
</select>
Откуда берется $Manufacture не понятно, если она определена ранее, еще ладно, но по уму, если это значение определяется полем другой sql-таблицы ( У меня сборка для комплектации находится в другой таблице. Там поля типа процессор, кулер и т.д.), а не той что запросом вернула $arr_get, то все параметры товара $value['ID'] должны получаться вложенным запросом к этой (этим) таблице.
PATH_IMAGE - константа определяющая путь к фото товаров, а $value['photo'] должно быть только именем фото в базе, иначе при необходимости изменения структуры каталогов придется все переписывать в базе.
При получении формы выбранное значение списка будет определять ID выбранного товара, по которому уже запросами к базе можно всегда получить его параметры из таблицы и связанных таблиц. А атрибуты data опций хранящие эти параметры для клиентского скрипта.
PS. Именно так строка должна формироваться, ибо в вашем коде ошибки в конструкции echo. И пробелы лишние ни к чему.
Последний раз редактировалось laimas, 26.05.2015 в 09:52.
|
|
26.05.2015, 09:48
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от kostyanet
|
Узость мышления детектед. Без всяких ключей можно получить нужный кортеж имея все необходимые параметры на входе.
|
Кыш из под ног, а то на хвост еще наступлю, будешь на таблетки работать. Бабушку свою учи несмышленыш. Несешь понос и даже не понимаешь сам, что это бред.
|
|
26.05.2015, 09:57
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Идея SQL заключается в хранении данных без номеров строк и смещений - в отношениях, которые имеют именованные параметры типа имя-значение. То есть хранится все х знает как, а выбирается то, что нужно и в том виде и в том порядке, которые определены в сценарии запроса. Применение числовых идентификаторов не более чем, идентификатором может быть любое отношение если его значение уникально для таблицы. Достаточно сделать unique key на поле скажем prod_name и prod_name может служить идентификатором, поскольку драйвер вам не даст завести 2 одинаковых имени продукта.
Однако что такое одинаковое имя для компа и для человека? Например для человека это одно и то же
RF(GL) 6532091
RF (GL) 6532091
а для компа - два разных имени. Для защиты от бескультурья, для повышения эффективности запросов, для экономии ресурсов, унификации, оптимизации и тп - вместо каких угодно идентификаторов применяют - числа. Только поэтому, а не потому что без чисел нельзя обойтись. Запросто можно, сущность SQL в том и состоит что можно.
|
|
26.05.2015, 10:01
|
Аспирант
|
|
Регистрация: 25.05.2015
Сообщений: 76
|
|
laimas, отдельное спасибо за демонстрацию примера, с помощью которого не надо было создавать мне $ID = $value['ID'] и т.д.
Но как теперь скрывать ИЗНАЧАЛЬНО цену и картинку до тех пор, пока не будет выбран товар в селекте.
|
|
|
|