Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Опрос, связанный с БД 
:(
    Опции темы
Dr.Death
Дата 6.9.2003, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 950
Регистрация: 15.7.2003
Где: Волгоград

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



Планирую сделать скрипт опроса, использующего БД(mysql).
Изначально не знаю, сколько в каждом опросе будет вариантов. Как сделать динамическое кол-во строк в описании таблицы, т.е мне не надо
вот как:
Код

Ответ1    varchar(255) not null,
Ответ2    varchar(255) not null,
Ответ(n-1)...

Можно ли такую таблицу сделать?


--------------------
Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер
PM MAIL WWW ICQ   Вверх
Devorior
Дата 6.9.2003, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



делаешь таблицы в MySQL:

таблица вопросов (question):
id | question

id -- уникальный ID вопроса (для связки с таблицей ответов)
question -- вопрос


таблица ответов (answer):
id | answer | questionID

id -- уникальный ID ответа (может не пригодится...смотри сам)
answer -- вариант ответа
questionID -- ID вопроса, к которому относится ответ


потом делаешь выборку ответов для каждого вопроса в цикле вопросов:

Код

$question_result = mysql_query("SELECT * FROM question")
while ($question_row = mysql_fetch_array($question_result, MYSQL_ASSOC)) {
  $query = "SELECT * FROM answer WHERE quiestionID = " . $question_row['id'];
  ..............................
}

PM MAIL ICQ   Вверх
Dr.Death
Дата 6.9.2003, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 950
Регистрация: 15.7.2003
Где: Волгоград

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



что дает MYSQL_ASSOC?


--------------------
Жизнь коротка, чтобы быть в ней слабым.© Арнольд Шварцнеггер
PM MAIL WWW ICQ   Вверх
buddy
Дата 6.9.2003, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 4.11.2002
Где: Киев

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



тоже что и mysql_fetch_array, только без повторных записей... короче, даёт чётко ассоциативный массив.
PM WWW ICQ MSN   Вверх
Devorior
Дата 6.9.2003, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата
The optional second argument result_type in mysql_fetch_array() is a constant and can take the following values: MYSQL_ASSOC, MYSQL_NUM, and MYSQL_BOTH. This feature was added in PHP 3.0.7. MYSQL_BOTH is the default for this argument.

By using MYSQL_BOTH, you'll get an array with both associative and number indices. Using MYSQL_ASSOC, you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM, you only get number indices (as mysql_fetch_row() works)


вообщем используя MYSQL_ASSOC к массиву можно обращаться по именам полей, MYSQL_NUM по индексам, MYSQL_BOTH -- и по именам и по индексам.

в mysql_fetch_array() без указания типа результата по-умолчанию используется MYSQL_BOTH

Цитата
тоже что и mysql_fetch_array, только без повторных записей...

это как это без повторных? smile.gif
PM MAIL ICQ   Вверх
MuToGeN
Дата 8.9.2003, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



На примере:
Код
$r=mysql_query("SELECT field_1, field_2, field_3 FROM table;");

mysql_fetch_array($r) или mysql_fetch_array($r,MYSQL_BOTH) вернет:
Array
(
   [0] => значение_поля_1,
   [field_1] => значение_поля_1,
   [1] => значение_поля_2,
   [field_2] => значение_поля_2,
   [2] => значение_поля_3,
   [field_3] => значение_поля_3
)

mysql_fetch_array($r,MYSQL_ASSOC) или myssql_fetch_assoc($r) вернет:
Array
(
   [field_1] => значение_поля_1,
   [field_2] => значение_поля_2,
   [field_3] => значение_поля_3
)

mysql_fetch_array($r,MYSQL_NUM) вернет:
Array
(
   [0] => значение_поля_1,
   [1] => значение_поля_2,
   [2] => значение_поля_3
)



--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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