Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> тег SELECT 
:(
    Опции темы
PrettyGirl
Дата 28.11.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2006

Репутация: нет
Всего: нет



Приветик всем!!!!
возник вопрос: как сделать поле формы в виде выпадающего списка с использованием тега SELECT и передать в неё массив?(размер массива может изменяться) 

<tr>
<td class = "form_left">ID предмета:</td>
<td class = "form_right">
<select name = "id_pred">
<options value=01>"здесь должны быть записи id_pred из таблицы topik"</option>
</select>
</td></tr>

не прописывать же все значения выпадающего списка вручную? 
к тому же количество записей в таблице topik может изменяться?

помогите пожалуйста!
в таблице topik хранится id_pred и name. 
необходимо сделать так,чтобы в выпадающем списке выпадали значения поля id_pred
PM MAIL   Вверх
muzer
Дата 28.11.2006, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



Гы..

Даже не знаю, с чего начать..

Вы знаете, что такое html?
Вы знаете, что такое база данных?
Вы знаете, что такое скрипт и динамически генерируемая страница?

Сначала прочитайте про это всё, потом мы попробуем с вами понять, на каком языке вы хотите писать свой сайт, потом может быть увидим на горизонте решение вашей задачи)
PM WWW   Вверх
skyboy
Дата 28.11.2006, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



так в PHP- скрипте вытягиваешь из базы(функции mysql_query для запроса, mysql_fetch_array для извлечения информации из буфера) данный и выводишь их в выходной поток(функции echo/print в руки). Так что никакого непосредственного отношения к БД вопрос не имеет. В зависимости от выбранного серверного языка используешь те, либо иные конструкции. Базы, пока что, сами себя выводить не умеют.
PM MAIL   Вверх
PrettyGirl
Дата 29.11.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2006

Репутация: нет
Всего: нет



сделала таким образом вывод: 
<?php

$dbsl=mysql_select_db('lid');

echo "<form method = \"post\">";

echo "ID специальности:";
echo "<select name = \"id_spec\" size = \"1\">";

$spec = mysql_query ("select * from speciality;");
$spec_rows = mysql_num_rows ($spec);

 for ($i = 0; $i < $spec_rows; $i++)
  {
     $spec_arr = mysql_fetch_array ($spec);
     echo "<option  = ".$spec_arr[id_spec].">".$spec_arr[name]."</option>";
     }

echo "</select>";
echo "<br>";

?>
возник такой вопрос: вывод вида: 
 echo "<option  = ".$spec_arr[id_spec].">".$spec_arr[name]."</option>";
не совсем корректно работает.
у меня поле таблицы,которое нужно выводить называется id_spec
данный вывод работает только с id
вывод вида: 
 echo "<option  = ".$spec_arr[id].">".$spec_arr[name]."</option>"; работает
Только вот достаточно неудобно изменять теперь во всей базе id_spec и id_pred  
на id.
Как этого изюежать?
PM MAIL   Вверх
skyboy
Дата 29.11.2006, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



ты мануалы читаешь вообще?  smile 
во-первых, конструкцию 
Код

$spec_rows = mysql_num_rows ($spec);
 for ($i = 0; $i < $spec_rows; $i++)
{
     $spec_arr = mysql_fetch_array ($spec);
...

замени на 
Код

while($spec_arr= mysql_fetch_array($spec))
{
 echo ...
.....

Цикл будет выполняться, пока будут строки; то же самое, но понятнее, привычнее и быстрее(ненамного, но все же).
В коде
Цитата(PrettyGirl @  29.11.2006,  09:31 Найти цитируемый пост)
Код
echo "<option  = ".$spec_arr[id_spec].">".$spec_arr[name]."</option>";

оберни индексы полей в кавычки:
Код
echo "<option  = ".$spec_arr['id_spec'].">".$spec_arr['name']."</option>";

Молодец, что делаешь конкатенацию строк вместо вставок переменных внутрь!  smile

Добавлено @ 10:55 
Цитата(PrettyGirl @  29.11.2006,  09:31 Найти цитируемый пост)
возник такой вопрос: вывод вида: 
 echo "<option  = ".$spec_arr[id_spec].">".$spec_arr[name]."</option>";
не совсем корректно работает.

чтоб посмотреть ошибки PHP, если они подавляются, достаточно в начале документа влепить 
Код

error_reporting(E_ALL);

Чтоб видеть ошибки mysql, добавляй к 
"<имя переменной с результатом> =mysql_query(<запрос>);"
такую конструкцию:
"<имя переменной с результатом> =mysql_query(<запрос>);
 if(!<имя переменной с результатом>)
  echo mysql_error();"
Т.е., во-первых, mysql_query вернет false в случае ошибки запроса, а mysql_error выведет последнюю ошибку, совершенную в запросах текущего скрипта.

Добавлено @ 10:59 
справочников по php немало, ссылки можно глянуть в теме Книги и статьи по PHP.
К сожалению, учебника посоветовать не могу smile

Добавлено @ 11:00 
Цитата(PrettyGirl @  29.11.2006,  09:31 Найти цитируемый пост)
возник такой вопрос: вывод вида: 
 echo "<option  = ".$spec_arr[id_spec].">".$spec_arr[name]."</option>";
не совсем корректно работает.

вобщем, жду описания, что же некорректно работает. Коль ошибка ползет - приведи её, чтоб понятно было. Вдруг окажется, что проблема не в индексах массива, а в запросе. Или ещё чего.
PM MAIL   Вверх
PrettyGirl
Дата 29.11.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 9.5.2006

Репутация: нет
Всего: нет



спасибо большое за очень подробное описание! 
обязательно приму к сведению все написанное.
Уже разобралась с этим вопросом.
Появились следующие smile 
вам они,скорее всего,снова покажутся смешными и незначительнымиsmile 
но я в этой теме только начинающая, поэтому не судите строго!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.