Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Ankieta- Wyniki w txt
Forum PHP.pl > Forum > Przedszkole
Ankietomaniak
Witam,
mam problem, napisalem ankiete w php, chce teraz aby wyniki zostaly zapisane w pliku .txt, problem polega na tym ze mam 40 pytan, powiedzmy dla 10 uzytkownikow, zapisane dane chcialbym w pliku w nastepujacym szablonie
Imie nazwisko (Podawane w ankiecie)
pyt1 : numerodp
pyt2 : opis odpowiedzi
itp az do pyt40.

problem mam z przechodzeniem po odpowiedziach

  1. <?php
  2.  
  3. $plik = fopen("wyniki.txt", "r");
  4.  
  5. $dane = fread($plik, filesize("wyniki.txt"));
  6.  
  7. $wyniki = split(":", $dane);
  8.  
  9. fclose($plik);
  10.  
  11.  
  12. for ($i =1; $i<=5; $i++)
  13. {
  14. switch($_POST[$i]){
  15. case "0":
  16. $wyniki[0] = '0';
  17. break;
  18. case "1":
  19. $wyniki[0] = '1';
  20. break;
  21. case "2":
  22. $wyniki[0] = '2';
  23. break;
  24. case "3":
  25. $wyniki[0] = '3';
  26. break;
  27. case "4":
  28. $wyniki[0] = '4';
  29. break;
  30.  
  31. }
  32. }
  33.  
  34. $plik = fopen("wyniki.txt", "w");
  35.  
  36. flock($plik, 2);
  37.  
  38. fwrite($plik, "Pytanie 1: $wyniki[0]", 200);
  39.  
  40. flock($plik, 3);
  41.  
  42. fclose($plik);
  43.  
  44. header("Location: wyniki.txt");
  45.  
  46. ?>

programuje glownie w c++ teraz przyszlo mi na szybkosci zrobic ankiete w php i mam problem:(
licze na wasza pomoc
gorden
całe sprawdzanie odpowiedzi zrób w foreach
zamiast switch możesz użyć while lub for
zamiast split użyj explode
używaj file_get_contents i file_put_contents zamiast tych przestarzałych fopen, fwrite itd.
mortus
Nie bardzo rozumiem, chcesz dane zapisać, czy odczytać i zmodyfikować?
Jak wygląda formularz ankiety?
Nie podoba mi się konstrukcja $_POST[$i], bo $i nie może być w cyfrą jak to jest u Ciebie (no chyba, że olejemy specyfikację (X)HTML).

@gorden fopen i fwrite nie są funkcjami "przestarzałymi" i nic nie stoi na przeszkodzie, aby je wykorzystać. Tym bardziej, że flile_get_contents() pobiera całą treść strony i nie rozróżnia linii. Dla file_put_contents() trzeba natomiast zawartość utworzyć w postaci łańcucha wyjściowego (w tym przypadku zawierającego również znaki końca linii), aby móc ją zapisać. Nie rozumiem również, po co "zamiast switch możesz użyć while lub for", przecież instrukcji warunkowej, jaką jest switch nie zastąpimy pętlą, a takowymi z pewnością są while i for.
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.