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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод опроса с БД, Как вывести опрос с БД на страничку 
:(
    Опции темы
narutoviper
Дата 6.2.2012, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток! Вообще начал делать скрипт проведения опроса
Создал три таблицы и заполнил минимальными данными 
Код


CREATE TABLE IF NOT EXISTS `answer` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `question_id` int(11) DEFAULT NULL,
  `vote_count` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=13 ;


INSERT INTO `answer` (`id`, `name`, `question_id`, `vote_count`) VALUES
(1, '5', 1, 1),
(2, '7', 1, 0),
(3, '9', 1, 0),
(4, '12', 1, 0),
(5, '11', 2, 0),
(6, '22', 2, 0),
(7, '25', 2, 1),
(8, 'Алгебра', 3, 0),
(9, 'Физика', 3, 1),
(10, 'Литра', 3, 0),
(11, 'История', 3, 1),
(12, 'Технология', 3, 0);


CREATE TABLE IF NOT EXISTS `poll` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `status` enum('active','close','rough') DEFAULT 'close',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;


INSERT INTO `poll` (`id`, `name`, `status`) VALUES
(1, 'Первый опрос', 'active');


CREATE TABLE IF NOT EXISTS `question` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` text,
  `type` enum('radio','chek') DEFAULT 'radio',
  `poll_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;


INSERT INTO `question` (`id`, `name`, `type`, `poll_id`) VALUES
(1, 'Сумма числе 2+3', 'radio', 1),
(2, 'Произведение чисел 5*5', 'radio', 1),
(3, 'Какой у Вас любимый предмет?', 'chek', 1);



файл подключения к БД startup.php
Код


function startup()
{
    // Настройки подключения к БД.
    $hostname = 'localhost'; 
    $username = 'root'; 
    $password = '';
    $dbName = 'poll';    
    
    // Подключение к БД.
    mysql_connect($hostname, $username, $password) or die('No connect with data base'); 
    mysql_select_db($dbName) or die('No data base');        
}


Файл модели model.php
Код

<?php
function poll_ans()
{
    // Запрос.
    $query = "SELECT question.name AS question, answer.name AS answer
    FROM question 
            LEFT JOIN answer ON answer.question_id = question.id";
    $result = mysql_query($query);
                            
    if (!$result)
        die(mysql_error());
    
    // Извлечение из БД.
    $n = mysql_num_rows($result);
    $poll= array();

    for ($i = 0; $i < $n; $i++)
    {
        $row = mysql_fetch_assoc($result);        
        $poll[] = $row;
    }
    
    return $poll;
}


Ну и собственно index.php 

Код

<?php
include_once('startup.php');
include_once('model.php');
startup();
$poll_ans = poll_ans();

?>

<p>
<? foreach ($poll_ans as $polls): ?>
        <?=$polls['question']?>
<? foreach ($poll_ans as $polls): ?>
        <h3>
        <input type="radio" name="answer" value="a<?=$polls['question_id']?>"><?=$polls['answer']?><Br>
        </h3>
        <? endforeach ?>
<? endforeach ?>


Как правильно вывести опрос на страницу? тоесть чтобы в шапке имя опроса, затем вопрос-ответы, вопрос-ответы. Это же по идеи автоматически должно будет генерироваться запросом с БД при выборе нужного опроса(id), и выводится на страницу. Какой то бред foreach'ем попробовал сделать, короче каша в голове( помогите пожалуйста, как правильно делается
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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