|
Автор |
Сообщение |
Raphael
Зарегистрирован: 27.02.2011 Сообщения: 6
|
|
|
|
Здравствуйте! Когда я ввожу следующий sql-запрос в phpMyAdmin:
Create table answers (
answer_id int not null auto_increment,
id int not null,
answer mediumtext not null,
primary key ( poll_id )
);
у меня появляется такая ошибка #1072 - Key column 'poll_id' doesn't exist in table Объясните, в чем проблема |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Объяснение понятно из описания ошибки 1072:
ты не определил поле poll_id, у тебя его нет в таблице |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
Raphael
Зарегистрирован: 27.02.2011 Сообщения: 6
|
|
|
|
Я всё делал как написано в вашей книге "PHP5/6 2-е издание" в 42 главе |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Ааа, вижу, ты нашел опечатку, спасибо В третьем издании исправил
вместо poll_ID нужно answer_ID
CREATE TABLE answers (
answer_ID INT NOT NULL AUTO_INCREMENT,
ID INT NOT NULL,
answer MEDIUMTEXT NOT NULL,
PRIMARY KEY ( answer_ID )
);
|
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Кстати, попробуй Advanced Poll, должно понравится |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
chip
Тысячник
Зарегистрирован: 22.04.2010 Сообщения: 2498
|
|
|
|
третье издание наверное будет респект, вот освою харашо Юникса тогда уже буду переходить на ПХП. |
|
Вернуться к началу |
|
|
Raphael
Зарегистрирован: 27.02.2011 Сообщения: 6
|
|
|
|
а в файле poll_form.php нет опечаток? а то у меня выдает ошибку: "Номер голосования указан неверно!" |
|
Вернуться к началу |
|
|
Raphael
Зарегистрирован: 27.02.2011 Сообщения: 6
|
|
|
|
А всё, спасибо, разобрался)) |
|
Вернуться к началу |
|
|
Raphael
Зарегистрирован: 27.02.2011 Сообщения: 6
|
|
|
|
Еще вопрос... Можно ли сделать так, чтобы при голосовании прибавлялся ни один голос, а выполнялась какая-нибудь операция. Например, ответы состоят из двух вариантов, при голосовании за один из них к нему прибавлялись все голоса варианта, за который не проголосовали? Или при голосовании все голоса умножались на 2 |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
А зачем? Подтасовка счетчика для одного из вариантов? Все ж элементарно: сначала читается значение, потом увеличивается на 1 (ну или умножается на 2), затем записывается в таблицу |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
Anderson
Завсегдатай
Зарегистрирован: 08.07.2006 Сообщения: 642 Откуда: localhost
|
|
|
|
Raphael, если детальнее - то:
Код: |
// блок получения данных из БД...
// ...
// собственно блок модификации (припустим, $variants[] - массив из 4-х элементов с голосами,
// а номер елемента, за который проголосовали (0..3) - в переменной $newVote:
// так добавляется 1 голос:
$variants[$newVote]++;
// так умножается на 2:
$variants[$newVote]=$variants[$newVote]*2;
// ...или
$variants[$newVote]*=2;
Так все остальные уменшаются, а голосованный остается прежним:
for($i=0;$i<=3;$i++) if($newVote!=$i) $variants[$i]--;
// блок сохранения данных в БД...
// ... |
_________________ ArchLinux + Enlightenment 17 (E17) |
|
Вернуться к началу |
|
|
Raphael
Зарегистрирован: 27.02.2011 Сообщения: 6
|
|
|
|
Просто у меня вот так увеличивается голос:
$q = "INSERT INTO votes ( answer_ID , ID)
VALUES ($answer, $poll);"; |
|
Вернуться к началу |
|
|
|
|