Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]operacje na plikach
Forum PHP.pl > Forum > Przedszkole
bemol
Chcę zbudować system oceniania dla ciekawostek. Przedstawie to co mam, a później zadam pytania.

formularz show.php
  1. <?php
  2. echo "<br /><br /><br />";
  3. echo "<center>";
  4. echo "<FORM action=ocena.php method=POST><table>";
  5. echo "<tr>";
  6. echo "<td align=center>Oceń ciekawostkę:</td>";
  7. echo "</tr>";
  8. echo "<tr>";
  9. echo "<td id=ocena valign=top><input type=submit id=ocena name=ocena value=1><input id=ocena type=submit name=ocena value=2><input id=ocena type=submit name=ocena value=3><input id=ocena type=submit name=ocena value=4><input id=ocena type=submit name=ocena value=5></td>";
  10. echo "</tr>";
  11. echo "</table></FORM>";
  12. echo "</center>";
  13. ?>


plik wykonujący ocena.php
  1. <?php
  2. @ $plik = fopen("oceny.txt", 'r+');
  3. ?>


Teraz mam takie pytanie. Utworzyłem na razie pusty plik oceny.txt. Na razie mam 60 ciekawostek, ale chcę to zrobić tak, żeby w przyszłości też można było oceniać nowe, które zostaną dodane. Chcę to zrobić tak, żeby odczytywał oceny.txt i dodawał $ocena do odpowiedniej linijki w pliku, która jest równa nr ciekawostki.
Np. wciskam ocenę 2 dla ciekawostki nr 28 i chcę, żeby w pliku oceny.txt w linijce 28 pojawił się "$ocena\n", czyli 2. Później skrypt liczy liczbę wartości linijki 28. Dodaje wartości i dzieli przez ich liczbę i zapisuje średnią do pliku wyniki.php. Chcę też zrobić tak, żeby nie można było ocenić dwa razy ciekawostki z tego samego ip.
kornel-php
Twierdzę, że oparcie tego na pliku tekstowym nie jest dobrym pomysłem... Proponowałbym MySQLa albo jakąś tego typu bazę...

Samo zapisywanie ocen, to nie problem, musisz tylko otworzyć plik, wyszukać (w pętli) odpowiednią linijkę i zapomocą (chyba) fputs() zapisać dane...

Ale naprawdę, zmień plik tekstowy na bazę danych, wtedy będzie łatwiej zapisywać adresy IP, które już głosowały, serio zastanów się nad tym...
bemol
Ja już o tym myślałem. Tylko jest problem. Pliki mam na STREFA.pl, która nie pozwala na czytanie bazy danych z innych hostingow. A do bazy szkolnej niestety nie mam dostepu i mieć nie będe (czyt. baza na strefa.pl).
Aha napisałes: musisz tylko otworzyć plik, wyszukać (w pętli) odpowiednią linijkę...
No właśnie z tym mam problem. za pomocą jakiej funkcji znaleźć tą linijke.
Aha i poza tym nie wiem z jakich przyczyn w bazie za chiny ludowe nie moge ustawic polskich znakow, wiec stalo by sie to dla mnie uciazliwe

Czy istnieje jakaś funkcja do wyszukania odpowiedniej linijki w pliku? Jeśli nie, to w jaki sposób to zrobić?
LBO
Cytat(bemol @ 28.04.2007, 09:16:47 ) *
Aha napisałes: musisz tylko otworzyć plik, wyszukać (w pętli) odpowiednią linijkę...
No właśnie z tym mam problem. za pomocą jakiej funkcji znaleźć tą linijke.


Tutaj jest podany sposób na to.

Cytat(bemol @ 28.04.2007, 09:16:47 ) *
Czy istnieje jakaś funkcja do wyszukania odpowiedniej linijki w pliku? Jeśli nie, to w jaki sposób to zrobić?


Zainteresuj się funckją file" title="Zobacz w manualu PHP" target="_manual.

edit:

Zapytaj się administratora, czy serwer posiada obsługę SQLite - bardzo dobra alternatywa to jest.
bemol
Dzięki, ale męcze się już nad tym dłuższą chwile i wyjść mi nie może sad.gif Dostanę jakiś kodzik?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.