Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php i mysql] SONDA - gdzie blad?
Forum PHP.pl > Forum > Przedszkole
rml
witam,

probuje wlasnie napisac sonde z zapisywaniem wynikow do bazy...

i skrypt ciagle uwaza ze dostaje odpowiedz na pierwsze pytanie... choc dostaje np. na trzecie.

co zrobilem zle?

  1. <?php
  2. mysql_connect('localhost', 'test', 'test');
  3.  
  4. $result = mysql_query('SELECT * FROM sonda');
  5. while (list ($opt1, $opt2, $opt3) = mysql_fetch_row ($result)) {
  6. $opti1 = $opt1;
  7. $opti2 = $opt2;
  8. $opti3 = $opt3;
  9. }
  10. ?>
  11.  
  12. <form action=\"wynik_sondy.php\" method=\"get\">
  13. <table border=\"2\"><tr><td>
  14. <table border=\"0\">
  15. <tr><td>&nbsp;</td><td width=\"200\" align=\"center\">SONDA (łącznie głosów: <? echo $opti1 + $opti2 + $opti3 ?>)</td></tr>
  16. <tr><td><input type=\"radio\" name=\"option1\"></td><td align=\"center\"> Czy? (<? echo &#092;"$opti1\" ?>)</td></tr>
  17. <tr><td><input type=\"radio\" name=\"option2\"></td><td align=\"center\"> A moze? (<? echo &#092;"$opti2\" ?>)</td></tr>
  18. <tr><td><input type=\"radio\" name=\"option3\"></td><td align=\"center\"> A moze jednak? (<? echo &#092;"$opti3\" ?>)</td></tr>
  19. </table>
  20. </td></tr><tr><td align=\"center\"><input type=\"submit\" value=\"Zagłosuj!\"></td></tr></table>


to jest pierwszy plik. a ten do ktorego sie odwoluje wyglada tak:


  1. <?php
  2. mysql_connect('localhost', 'test', 'test');
  3.  
  4. $result = mysql_query(&#092;"SELECT * FROM sonda\");
  5. while (list ($opt1, $opt2, $opt3) = mysql_fetch_row ($result)) {
  6. $opti1 = $opt1;
  7. $opti2 = $opt2;
  8. $opti3 = $opt3;
  9. }
  10. // dodawanie jesli opcja pierwsza
  11. if ($option1 = on)
  12. {
  13. mysql_query(&#092;"UPDATE sonda SET option1=$opti1 + 1 WHERE option1=$opti1\");
  14. }
  15. // dodawanie opcja druga
  16. elseif ($option2 = on)
  17. {
  18. mysql_query(&#092;"UPDATE sonda SET option2=$opti2 + 1 WHERE option2=$opti2\");
  19. }
  20. //dodawanie opcja trzecia
  21. elseif ($option3 = on)
  22. {
  23. mysql_query(&#092;"UPDATE sonda SET option3=$opti3 + 1 WHERE option3=$opti3\");
  24. }
  25. else {
  26. echo &#092;"Nic nie wybrałeś!\";}
  27. ?>


co zrobic zeby bylo dobrze? smile.gif


pozdro,
rml.
Darti
  1. <?php
  2. if ($_GET['option1'] == 'on')
  3. {
  4. mysql_query(&#092;"UPDATE sonda SET option1=$opti1 + 1 WHERE option1=$opti1\");
  5. } itd...
  6. ?>

po prostu w warunku if dales = co dalo wynik true (zawsze), a powinienes dac ==
rml
dzieki bardzo smile.gif dziala smile.gif

a jeszcze dwie rzeczy:

jakim sposobem sprawdzic IP usera zeby jeden user nie mogl dwa razy glosowac?

a druga rzecz to: czym sie rozni to = od ==? co to sa? operatory? czy jak? gdzie poszukac informacji o takich rzeczach?


pzdr,
rml.
Darti
pierwsza rzecz - uzyj raczej cookies albo sesji, bo jedno IP globalne może mieć nawet setki kompów (np kafejki itp).
A druga - hehe poczytaj w manualu operatory przypisania i operatory porównania
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.