Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Множественное голосование
 
 автор: major2   (06.07.2007 в 09:25)   письмо автору
 
 

Всем привет!!! Возникла такая идея создать множественное голосование. Можно посмотреть здесь http://etph.org.ru/pol/p.htm Вопрос опроса "Как вам объясняют общую физику?"
И так по делу. Ниже приведены листинги они все подписаны. Нужно сделать следующее.
Нужно выбрать радио-кнопкой три варианта ответа и отправить результаты скрипту write.php, чтоб тот записал их в три различных файла lek.txt, upr.txt, vuz.txt. А затем скрипт echo.php вывел все результаты из этих файлов.
Сам пробывал сделать самостоятельно но без результата. Поэтому огромная просьба помочь осуществить эту задумку. Спасибо!

HTML-код опроса p.htm

<html>
<body>
<tabel>
      <tr>
          <td>
<form action="/pol/write.php" method="post">

<b>Лекции</b>
    <table cellpadding="5">

        <input type="hidden" name="name1" value="lek">
<colgroup align="right"></colgroup><colgroup></colgroup>
<tr><td><b>Хорошо</b>:</td><td><input type="radio" name="vote1" value="0"></input></td></tr>
<tr><td><b>Средне</b>:</td><td><input type="radio" name="vote1" value="1"></input></td></tr>
<tr><td><b>Плохо</b>:</td><td><input type="radio" name="vote1" value="2"></input></td></tr>
      </input>
    </table>

<b>Упражнения</b>
    <table cellpadding="5">

       <input type="hidden" name="name2" value="upr">
<colgroup align="right"></colgroup><colgroup></colgroup>
<tr><td><b>Хорошо</b>:</td><td><input type="radio" name="vote2" value="0"></input></td></tr>
<tr><td><b>Средне</b>:</td><td><input type="radio" name="vote2" value="1"></input></td></tr>
<tr><td><b>Плохо</b>:</td><td><input type="radio" name="vote2" value="2"></input></td></tr>
       </input>
   </table>

<b>Какой ВУЗ?</b>
     <table cellpadding="5">

          <input type="hidden" name="name3" value="vuz">
<colgroup align="right"></colgroup><colgroup></colgroup>
<tr><td><b>МИФИ</b>:</td><td><input type="radio" name="vote3" value="0"></input></td></tr>
<tr><td><b>Другой</b>:</td><td><input type="radio" name="vote3" value="1"></input></td></tr>
          </input>
     </table>

<table> 
<tr><td align="right"><input type="submit" value="Голосовать"></input></td></tr>
</table>

</form>

      </td>
</tr>

</tabel>
</body>
</html>


write.php — скрипт обработки поступающих «голосов»

<?php

# Argon PHP-Voting 0.1 (write.php)
# Copyright 2004 Argon
# http://argon.com.ru/

extract($HTTP_POST_VARS);
extract($HTTP_GET_VARS);

# Не позволять повторно голосовать, в днях
$days=1;

if(isset(
$vote) and $name and !isset($HTTP_COOKIE_VARS['opros-'.$name]))
{

@
$results=file($name.'.txt') or exit('<b>Неверное имя опроса.</b>');
$count=count($results);

for(
$n=0;$n<$count;$n++)
    {
    
$tempexplode('¦',$results[$n]);
    
settype($temp[1],'int'); 
    
$vname[$n]=$temp[0];
    
$vnumb[$n]=$temp[1];
    }

if(
is_array($vote))
    {
    foreach(
$vote as $k=>$v)
        {
        
$vnumb[$k]=$vnumb[$k]+1;
        }
    }
else
    {
    
$vnumb[$vote]=$vnumb[$vote]+1;
    }

$write='';

for(
$n=0;$n<$count;$n++)
    {
    
$write=$write.$vname[$n].'¦'.$vnumb[$n]."\n";
    }

$fp=fopen($name.'.txt','w');
fwrite($fp,$write);
fclose($fp);

setcookie('opros-'.$name,'1',time()+60*60*24*$days);

echo(
'<b>Ваш голос успешно обработан.<b>');

# Чтобы не выводить результаты после голосования, поставьте # перед include...
include('echo.php');

}

elseif(isset(
$HTTP_COOKIE_VARS['opros-'.$name]))echo('<b>Вы уже сделали свой выбор. Чтобы проголосовать снова, приходите через сутки.</b>');

else echo(
'<b>Неверное обращение к скрипту.</b>');

?> 


echo.php — скрипт вывода результатов голосования

<?php

# Argon PHP-Voting 0.1 (echo.php)
# Copyright 2004 Argon
# http://argon.com.ru/

extract($HTTP_POST_VARS);
extract($HTTP_GET_VARS);

if(
$name)
{

@
$results=file($name.'.txt') or exit('<b>Неверное имя опроса.</b>');
$count=count($results);

for(
$n=0;$n<$count;$n++)
    {
    
$tempexplode('¦',$results[$n]);
    
settype($temp[1],'int'); 
    
$echo[$temp[0]]=$temp[1];
    }

$sum=array_sum($echo);

# Расположить по убыванию
arsort($echo);

# Расположить по возрастанию
#asort($echo);

# 100% ширины "шкалы", в пикселях
$longall=200;

echo(
'<table cellpadding=5>');

foreach(
$echo as $k=>$v)
    {
    
$long=sprintf('%d',$v/$sum*$longall);
    
$percent=sprintf('%02.2f',$v/$sum*100);
    echo(
'<tr><th align="right">'.$k.'</th><td><div style="height:10px;width:'.$long.'px;background-color:black"></div></td><td>'.$v.'</td><td>('.$percent.'%)</td></tr>');
    }

echo(
'<tr><th align="right">Всего голосов</th><td><div style="height:10px;width:'.$longall.'px;background-color:black"></div></td><td>'.$sum.'</td><td>(100%)</td></tr>');
echo(
'</table>');

}

else echo(
'<b>Не задано имя опроса.</b>');

?> 


lek.txt , upr.txt - файл с результатами опроса про лекции и про упражнения, соответсвенно

Хорошо¦0
Средне¦0
Плохо¦0


vuz.txt - файл с результатами опроса про Вузы

МИФИ¦0
Другой¦0

   
 
 автор: Trianon   (06.07.2007 в 10:04)   письмо автору
 
   для: major2   (06.07.2007 в 09:25)
 

задачу обязательно решать на файлах? MySQL под рукой нет?

   
 
 автор: major2   (06.07.2007 в 10:11)   письмо автору
 
   для: Trianon   (06.07.2007 в 10:04)
 

Есть Mysql. Только я с ней пока ни разу не работал. А что с помощью базы все проще?

   
 
 автор: Trianon   (06.07.2007 в 10:12)   письмо автору
 
   для: major2   (06.07.2007 в 10:11)
 

Самое время начать. Не пожалеете.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования