ďťż
Podstrony
|
telcocafeWitam. 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 |
|||
Sitedesign by AltusUmbrae. |