ďťż

[PHP] - Sonda. Pomocy!!!

       

Podstrony


telcocafe

Witam. Otóż mam taki problem: zrobiłem sobie sondę w php. Nie jest ona najlpesza lecz jest to związane z tym że nauczyłem się php i teraz biorę sie za praktykę. Problem leży w tym, iż jeżeli zaznacze wszyskie inne odpowiedzi niż "bardzo słaba" to jest w porządku wszysko sie ładnie dodaje a kiedy zaznacze odpowiedź "bardzo słaba" to nic sie nie dodaje i cały czas zostaje "0". Prosze o pomoc.

P.S - jeżeli macie jakieś pomysły co do ulepszenia tej sondy proszę o pomoc. Właśnie pracuje nad ochroną antyfoodową. Z góry THX. :D

Oto formularz:
<form name="ankieta" action="sonda.php"> <INPUT TYPE="radio" NAME="ankieta" VALUE="super">Jest Super<br> <INPUT TYPE="radio" NAME="ankieta" VALUE="fajna">Jest Fajna<br> <INPUT TYPE="radio" NAME="ankieta" VALUE="srednia">Taka Sobie<br> <INPUT TYPE="radio" NAME="ankieta" VALUE="baznadzieja">Bardzo Słaba<br><br> <input type="submit" value="Wyslij" style="font-size: 10px; color: #000000; font-family: Verdana; text-align: center; border: 1px solid #000000; size="10"> </form>
Oto skrypt:
<?php $plik="sonda.txt"; $fp = fopen("sonda.txt", "r+"); if(!$fp) die("Nie można uzyskać dostępu do pliku"); $ilosc = fread($fp, filesize($plik)); fclose($fp); $tablica = explode("-", $ilosc); $super = $tablica[0]; $fajna = $tablica[1]; $srednia = $tablica[2]; $beznadzieja = $tablica[3]; switch ($ankieta) { case "super": $super++; break; case "fajna": $fajna++; break; case "srednia": $srednia++; break; case "beznadzieja": $beznadzieja++; break; } $tablica[0] = $super; $tablica[1] = $fajna; $tablica[2] = $srednia; $tablica[3] = $beznadzieja; $ciag = implode("-", $tablica); $fp = fopen("sonda.txt", "r+"); fwrite($fp, "$super-$fajna-$srednia-$beznadzieja"); fclose($fp); $wsumie = $super + $fajna + $srednia + $beznadzieja; $super_p = round($super*100/$wsumie); $fajna_p = round($fajna*100/$wsumie); $srednia_p = round($srednia*100/$wsumie); $beznadzieja_p = round($beznadzieja*100/$wsumie); echo '<table border=0>'; echo '<tr>'; echo "<td background=pasek.jpg width=$super_p>"; echo "$super_p"; echo "%"; echo "($super)"; echo '</td>'; echo '</tr>'; echo '</table>'; echo '<table border=0>'; echo '<tr>'; echo "<td background=pasek.jpg width=$fajna_p>"; echo "$fajna_p"; echo "%"; echo "($fajna)"; echo '</td>'; echo '</tr>'; echo '</table>'; echo '<table border=0>'; echo '<tr>'; echo "<td background=pasek.jpg width=$srednia_p>"; echo "$srednia_p"; echo "%"; echo "($srednia)"; echo '</td>'; echo '</tr>'; echo '</table>'; echo '<table border=0>'; echo '<tr>'; echo "<td background=pasek.jpg width=$beznadzieja_p>"; echo "$beznadzieja_p"; echo "%"; echo "($beznadzieja)"; echo '</td>'; echo '</tr>'; echo '</table>'; echo "Glosowalo: $wsumie osób."; ?>

// Używaj [ code ] (ew. [ codebox] )!!!
Użytkownik _Herkules_ edytował ten post 08 lipiec 2005, 20:59


1. Pisząc kod na forum używaj [ code ] [ /code ]
2. Przejrzyj caly kod, pewnie gdzieś masz bląd...
3. Przeraża mnie ilość "echo" :huh:, przez to aplikacja może wolniej dzialać...
4. Jeśli chcesz przykladu, przejrzyj gotowce pokazane w książkach albo w kursach online ^_^

Skrypyt dość dobrze napisany, male poprawki i będzie naprawdę dobrze ^_^

$plik="sonda.txt"; $fp = fopen("sonda.txt", "r+"); if(!$fp) die("Nie można uzyskać dostępu do pliku"); $ilosc = fread($fp, filesize($plik)); fclose($fp); $tablica = explode("-", $ilosc); [color=red]$super = $tablica[0]; $fajna = $tablica[1]; $srednia = $tablica[2]; $beznadzieja = $tablica[3];[/color] switch ($ankieta) { case "super": $super++; break; case "fajna": $fajna++; break; case "srednia": $srednia++; break; case "beznadzieja": $beznadzieja++; break; } [color=red] $tablica[0] = $super; $tablica[1] = $fajna; $tablica[2] = $srednia; $tablica[3] = $beznadzieja;[/color]
Jak widzisz nie dałeś "bardzo słaba" do tablicy ;)
// Używaj [ code ] (ew. [ codebox] )
Użytkownik _Herkules_ edytował ten post 08 lipiec 2005, 20:59

(...)

$tablica[0] = $super;
$tablica[1] = $fajna;
$tablica[2] = $srednia;
$tablica[3] = $beznadzieja;

Jak widzisz nie dałeś "bardzo słaba" do tablicy ;)



Super. Dzięki Bardzo Ci Dziękuje Pomogło. Podejrzewałem że to jakaś literówka ale jeszcze raz dziękuje bardzo. :)

zamiast używac echo "dadada" wszyscy biją na alarm ze lepsze jest (szybsze) echo 'sadddddd' wiec korzystajecie z echo 'Tresc';

ale jeśli będziesz miał
$lol=4 echo '2 i 2 daje: $lol';
to na stronie wyświetli:

2 i 2 daje: $lol

Jeżeli jednak będziesz używał cudzysłowów tekst przechodzi przez parser i wtedy po wpisaniu takiego kodu:

$lol=4 echo "2 i 2 daje: $lol";

to na stronie wyświetli:

2 i 2 daje: 4

Po prostu jeżeli masz pojedynczy cudzysłów (apostrof) to parser "myśli" tak:

Ten od  cudzysłowa do cudzysłowa trzeba wyświetlić

Jak podwójny:


Wyświetle tekst  i przez parser przepuszcze.

No i rzeczywiście echo '' jest szybsze od echo "" bo całe nie przechodzi przez parser. :]

BTW. A morał z tego taki że babcia do sklepu iść nie powinna :P

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.