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

Форум PHP

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

 

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

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

тема: Не работает скрипт голосования
 
 автор: kvn   (19.11.2007 в 13:44)   письмо автору
 
 

1. делаю голосование
2. два скрипта первый golosovanie.php
<?php

$arr_variants=file("variants.txt");
$arr_opros=file("opros.txt");
echo "<form action=add_golos.php method=post>";
$variants=0;
echo $arr_variants[$variants]."<BR>";
$variants=1;
$opros=1;
while ($variants<count($arr_variants)){
echo "<input type='radio' name='oprosi' value='$opros'>"."$arr_variants[$variants]<BR>";
$variants++;
$opros++;

}
echo "<input type='submit' name='enter' value='голосовать'>";
echo "</form>";
?>
3. фаил обработчик
<?php
$arr_data=file("opros.txt");
$d=$_POST['oprosi'];
//echo $d."<br>";
$arr_data[$d]=$arr_data[$d]+1;
//echo $arr_data[$d];
//print_r($arr_data);
$fp=fopen("opros.txt","w");
foreach ($arr_data as $d){
echo $d."\n";
fputs($fp,$d);//пиши в фаил построчно с переносом строки

//unset ($arr_data);
//print_r($arr_data);
}
fclose($fp);
?>
структура фаила opros.txt
1. РЕЗУЛЬТАТЫ ГОЛОСОВАНИЯ
2. (ОСЕЛ)
3. (МАЗИЛА)
4. (ОПЕРА)

   
 
 автор: KVN   (19.11.2007 в 13:47)   письмо автору
 
   для: kvn   (19.11.2007 в 13:44)
 

так вот как то криво начинает в фаил писать неправильно как будто что то ни так сделанно(

   
 
 автор: KVN   (19.11.2007 в 13:50)   письмо автору
 
   для: kvn   (19.11.2007 в 13:44)
 

например при шелчке на 2 вариант на мазилу получаем
Варианты ответа
0
10
было
варианты ответа
0
0
0
должны были получить
варианты ответа
0
1
0
ну а вышло что выше написал отстой(

   
 
 автор: bronenos   (19.11.2007 в 14:21)   письмо автору
 
   для: kvn   (19.11.2007 в 13:44)
 

Предлагаю иначе написать
<?php
$arr_variants
=file("variants.txt");
$arr_opros=file("opros.txt");
echo 
"<form action=add_golos.php method=post>";
echo 
$arr_variants[0]."<BR>";
$variants=1;
while (
$variants<count($arr_variants)){
echo 
"<input type='radio' name='oprosi' value='$variants'>{$arr_variants[$variants]}<BR>";
$variants++;
}
echo 
"<input type='submit' name='enter' value='голосовать'>";
echo 
"</form>";
?>


<?php
$arr_data
=file("opros.txt");
$d=$_POST['oprosi'];
//echo $d."<br>";
$arr_data[$d] = intval($arr_data[$d]) + 1;
//echo $arr_data[$d];
//print_r($arr_data);
$fp=fopen("opros.txt","w");
foreach (
$arr_data as $d){
echo 
$d."\n";
fputs($fp,$d."\n");//пиши в фаил построчно с переносом строки

//unset ($arr_data);
//print_r($arr_data);
}
fclose($fp);
?>

   
 
 автор: KVN   (19.11.2007 в 16:19)   письмо автору
 
   для: bronenos   (19.11.2007 в 14:21)
 

так тоже не пишеться как надо кто нибудь помогите

   
 
 автор: Петров   (20.11.2007 в 12:53)   письмо автору
 
   для: KVN   (19.11.2007 в 16:19)
 

Дело тут в том, что после арифметической операции сложения с единицей, соответствующий элемент массива становится чисто числовым. от остальных элементов он отличается тем, что нет перевода строки справа. Надо его туда присобачить. Например, так:
$v=$arr_data[$d];
$v=$v+1;
$arr_data[$d]=$v."\n";

   
 
 автор: bronenos   (20.11.2007 в 13:13)   письмо автору
 
   для: Петров   (20.11.2007 в 12:53)
 

я ему уже исправил )) с этим переносом

   
 
 автор: Петров   (20.11.2007 в 15:02)   письмо автору
 
   для: bronenos   (20.11.2007 в 13:13)
 

Не совсем так, Вы присобачиваете перевод строки к каждому элементу массива, а надо только к тому,который меняется. В остальных он уже есть и будут в выходном файле появляться лишние строки.

В дополнение: в первом скрипте файл "opros.txt" не нужен. Нужно ведь только вывести варианты ответов, которые в файле "variants.txt".

   
 
 автор: bronenos   (20.11.2007 в 15:35)   письмо автору
 
   для: Петров   (20.11.2007 в 15:02)
 

нее.... я ему в асе ответил (исправив эту ошибку)

   
Rambler's Top100
вверх

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