Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Ankieta php mysql, Nie zapisuje głosów do bazy ?
maras_
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 9.08.2009

Ostrzeżenie: (0%)
-----


Witam. Mam taki problem gdy kliknę na jedną z opcji glosowania wydaje się, że wszystko jest w porządku ponieważ dostaje komunikat że głos został dodany. Jednak gdy chce sprawdzić wynik głosowania wyświetla się
  1. Division by zero in D:\Program Files\wamp\www\zobacz.php on line 18
więc przypuszczam, że głos nie został dodany. Poniżej zamieszczam kod do otworzenia wyników.
  1. <?php
  2. $polaczenie=mysql_connect('localhost','marek','marek123','sonda');
  3. mysql_select_db("sonda",$polaczenie);
  4. $rezultat=mysql_query("select * from sonda");
  5. $glosy=mysql_fetch_array($rezultat);
  6. $suma_glosow=0;
  7. for ($odp=1;$odp<=3;$odp++)
  8. $suma_glosow=$suma_glosow+$glosy["odp".$odp];
  9. for ($odp=1;$odp<=3;$odp++)
  10. $procent[$odp]=round(($glosy["odp".$odp]/$suma_glosow)*100);
  11. $tekst_odp[1]="Tak";
  12. $tekst_odp[2]="Nie";
  13. $tekst_odp[3]="Przeciętna";
  14. echo "<h3>Wyniki sondy</h3><br>";
  15. echo "<table border=0>";
  16. for ($odp=1;$odp<=3;$odp++)
  17. echo "<tr><td><p>".$tekst_odp[$odp].
  18. ":</p></td><td><p> ".$glosy["odp".$odp].
  19. " - ".$procent[$odp].
  20. " %</p></td><td><img src=pasek.gif height=20 width=".
  21. ($procent[$odp]*5)."></td></tr>";
  22. echo "</table>";
  23. mysql_close($polaczenie);
  24. ?>


niżej kod do dodawania głosów
  1. <?php
  2. if ($_COOKIE["sonda"]<>"1")
  3. {
  4. $czydodacglos="mozna";
  5. }
  6. else
  7. $czydodacglos="niemozna";
  8. ?>
  9. <?php
  10. if ($czydodacglos=="mozna")
  11. {
  12. $odp=$_POST["odp"];
  13. $polaczenie=
  14. mysql_connect('localhost','marek','marek123','sonda');
  15. mysql_select_db("sonda",$polaczenie);
  16. $rezultat=mysql_query("SELECT odp".$odp." from sonda",$polaczenie);
  17. $wartosc=mysql_fetch_array($rezultat);
  18. $liczba=$wartosc["odp".$odp];
  19. $liczba+=1;
  20. $sql=mysql_query("UPDATE sonda SET odp".$odp."=".$liczba,$polaczenie);
  21. echo "<p>Dodano głos!</p>";
  22. mysql_close($polaczenie);
  23. }
  24. else
  25. echo "<p>Głos już został oddany!</p>";
  26. ?>
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


A nie możesz po prostu sprawdzić czy wpis jest dodawany...? (phpMyAdmin albo w konsolce)
Go to the top of the page
+Quote Post
maras_
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 9.08.2009

Ostrzeżenie: (0%)
-----


Nie wpadłem na to (IMG:style_emoticons/default/tongue.gif) Ale jak widze nie jest dodawany.
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Tu:
  1. if ($_COOKIE["sonda"]<>"1")


Ma być raczej operator !=
Go to the top of the page
+Quote Post
maras_
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 9.08.2009

Ostrzeżenie: (0%)
-----


Niestety nie. Już 2 raz mam problem z tą ankietą wcześniej wszystko działało elegancko a teraz nie mam pojęcia co się stało..
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Nie wpadłem na to
Nie wpadles na wiele rzeczy.

jak robisz mysql_query to sprawdzaj czy sie ono powiodlo czy nie a nie walisz komunikat ze sie dodano.
Jak sie nie powiodlo to walnij sobie mysql_error() i sie dowiesz co poszlo nie tak.

Cytat
Division by zero
Kolejna bystra rzecz... zanim zaczniesz dzielic to sprawdź czy wogole jest co dzielic.

przenosze
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 05:10