Как их всех посчитать?

Sash [None]

Новичок
Как их всех посчитать?

Ну вот, теперь и я решил влиться в РНР клуб... но не знаю, получится ли. Купил пару книжек, скачиваю мануалы... но что-то не особо получается.:confused:
Теорию понимаю, а как на практике сделать - не пойму.
Вот вроде бы простая задача: создать простое голосование.
Опять же, понимаю, что нужно создать форму с выбором возможного ответа (от 1 до 5 баллов) и знаю как это сделать. А вот с РНР частью проблемы.:confused: Нужно создать в файле массив: имя переменной + переменная, и таких строк (или ещё чего) должно быть произвольное количество... При голосовании должно считываться соответствующее значение и инкрименироваться на значение выбранное в форме.
ПОМОГИТЕ ИДИОТУ.
 

Mammoth

Guest
> ПОМОГИТЕ ИДИОТУ.

Только не надо устраивать аутодафе, плиз. Просто составь алгоритм работы скрипта и реализуй его. Будут конкретные проблемы - спрашивай.

> Нужно создать в файле массив: имя переменной + переменная, и таких строк (или ещё чего) должно быть произвольное количество...

Просто определись с форматом хранения данных в файле (или в БД) и напиши функции чтения, записи (обновления) данных.
 

Mammoth

Guest
для чтения, например, можешь использовать функции [m]file[/m] и [m]explode[/m], для записи данных - функции [m]implode[/m] и [m]fwrite[/m] ([m]fputs[/m])
 

.des.

Поставил пиво кому надо ;-)
Sash давай так напиши простую форму из одного текстового поля - firstname! action ее поставь имя твоего скрипта и введенное значение этого поля запиши в файл. и выведи в браузер добро пожаловать firstname на наш сайт.
сможешь?
<form action="myfirst.php">
<input type="text" name="firstname">
</form>
реализуй
myfirst.php
многое для себя прояснишь.
 

Sash [None]

Новичок
Спасиба ребята. Вот только одна проблема. Если присваиваю переменной массив и пытаюсь записать его в файл, то он в файле записывает array :(
Как мне вот эту проблему решить? (вроде бы вопрос конкретный) :)
 

RomikChef

Guest
В файл можно записать только текст.
Вот придумай, как представить твой массив в виде текста.
 

Sash [None]

Новичок
RomikChef, это ты хорошо придумал. Я РНР три дня изучаю, а ты уже во какие задачи ставишь :) Садист!!
 

Serjoza

Guest
для чтения, например, можешь использовать функции file и explode, для записи данных - функции implode и fwrite (fputs)
...только можно повториться...
 

RomikChef

Guest
для того, чтобы придумать, как должен выглядеть массив виде текста, не нужно знать вообще ни одного языка программирования.
надо просто придумать пример такого текста.
а потом спросить - как реализовать такое преобразование на РНР
 

Sash [None]

Новичок
RomikChef спасибо тебе, за дельный совет. ну допустим я хочу, что бы у меня был примерно такой массив:
m1w1b => 7 //сумма баллов (инкримен. от 1 до 5 )
m1w1h => 7 //сколько голосов (+1 каждый раз)
.......и так несколько раз.
Я уже вроде бы и с массивами разобрался. Знаю как сделать массив и вызвать из него нужное число.
Я так пологаю что алгоритм примерно такой:
Создаём файл с пустым массивом. Потом при получении данных из формы читаем этот файл, записываем его данные во временный массив, инкриминируем определённую часть, записываем этот массив обратно в файл и закрываем его. Больше в принципе ни чего не нужно. Хорошо бы конечно ещё выводить данные из этого файла в виде "Средний балл ="$m1w1b/$m1w1h" или что-то в этом духе.
P,S только не ругайтесь на меня. Я честное слово хочу всё это изучить!!! И я ИЗУЧУ!!! Чего бы мне это ни стоило. Но вот только помогите немножко. Ок? :)
 

.des.

Поставил пиво кому надо ;-)
Sash давай так... мы будем записывать твой массив в файл в одну строку
то есть my_file.dat
ключ1##значение1##ключ2##значение2##ключ3##значение3##...........ключN##значениеN
То есть нужен какой то уникальный разделитель наших элементов чтобы потом можно было их разделить.
вот для того чтобы прочитать все это в твой массив что надо?
PHP:
$fp=fopen("my_file.dat","rb");
$fcontents=fread($fp,filesize("my_file.dat"));

//теперь в нашей переменной $fcontents содержимое файла
//используем функцию explode()
$arr=explode("##",$fcontents);
// в $arr у нас теперь элементы ключ1, элемент1, ....
//но нам надо восстановить ассоциативный массив
// для этого пройдемся по массиву еще раз в цикле
$c=count($arr);
for($i=0,$i<$c;$i+=2)
{
   $arr_assoc[$arr[$i]]=$arr[$i+1];
}
//ну вот и все - получили исходный массив!
//догадайся как его туда записать!
PHP:
//А знаешь как еще проще???
//чтение
$fp=fopen("my_file.dat","rb");
$fcontents=fread($fp,filesize("my_file.dat"));
$arr_assocc=unserialize($fcontents);
$fclose($fp);

//запись
$fp=fopen("my_file.dat","wb");
$fcontents=serialize($arr_assocc);
fwrite($fp,$fcontents);
$fclose($fp);
описания ко всем функциям, которые я привел ПРОЧИТАТЬ В МАНЕ ЕСЛИ ДЕЙСТВИТЕЛЬНО ПРАВДА
только не ругайтесь на меня. Я честное слово хочу всё это изучить!!! И я ИЗУЧУ!!! Чего бы мне это ни стоило. Но вот только помогите немножко. Ок?
 

Sash [None]

Новичок
.des. - Спасибо большое. Щас начну разбираться... ага... вот я в книжулке знакомые буковки нашел... значит разберусь! СПАСИБО!!! :) :) :)
Какие же вы хорошие :) :) :)
 
Сверху