Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] licznik głosów + pasek stanu
Forum PHP.pl > Forum > PHP
miszcz
Witam, posiadam skrypt "ankietowy" i chciałbym go zmienić do poziomu takiego głosowania jak na tej stronie: http://www.jestemprzeciwacta.pl/
W tej chwili to działa tak, że po kliknięciu przycisku, dodaje się do bazy i na pasku stanu ale procentowo. Chodzi mi natomiast by tylko i wyłącznie pokazywało liczbę głosów i tak na pasku pokazywało (przyjmijmy, że 100% to będzie 50 000 głosów) oraz pobierało dane z pola tekstowego i wysyłało mailem (ale nie o przesyłanie mi chodzi bo to mam gotowe).
Na tej stronie przykładowej to chyba działa tak, że powiedzmy jak głos odda 3000 osób to przelicza ile to jest procent z 500 000 i wtedy to się równa szerokości paska. Tylko nie wiem jak to napisać tongue.gif
Poniżej obecny kod:

dodaj.php
  1. <?php
  2.  
  3. $odp=$_POST["odp"];
  4. $polaczenie=
  5. mysql_connect("localhost","root","");
  6. mysql_select_db("sonda",$polaczenie);
  7. $rezultat=mysql_query("SELECT odp".$odp." from sonda",$polaczenie);
  8. $wartosc=mysql_fetch_array($rezultat);
  9. $liczba=$wartosc["odp".$odp];
  10. $liczba+=1;
  11. $sql=mysql_query("UPDATE sonda SET odp".$odp."=".$liczba,$polaczenie);
  12. echo "<p>Dodano głos!</p>";
  13. mysql_close($polaczenie);
  14.  
  15. ?>


sonda.html
  1. <title>xxx</title>
  2. </head>
  3. <form action=dodaj.php method=post>
  4. <!-- głos jest przesłany do skryptu dodaj.php -->
  5. <h1>xxx</h1>
  6. <input type=submit name=odp value=wyslij>Tak<br>
  7. <input class="type1" value="Imię" rel="Imię" name="person[name]" type="text">
  8. </form>
  9. <br><a href=zobacz.php>Zobacz wyniki</a>
  10. </body>
  11. </html>


zobacz.php
  1. <?php
  2. $polaczenie=mysql_connect("localhost","root","");
  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]="wyslij";
  12. echo "<h3>Wyniki sondy</h3><br>";
  13. echo "<table border=0>";
  14. for ($odp=1;$odp<=3;$odp++)
  15. echo "<tr><td><p>".$tekst_odp[$odp].
  16. ":</p></td><td><p> ".$glosy["odp".$odp].
  17. " - ".$procent[$odp].
  18. " %</p></td><td><img src=pasek.gif height=20 width=".
  19. ($procent[$odp]*5)."></td></tr>";
  20. echo "</table>";
  21. mysql_close($polaczenie);
  22. ?>


mysql:
  1. CREATE TABLE sonda (odp1 int);
  2. INSERT INTO sonda (odp1) VALUES (0);


aha i jeszcze jedno: czemu wysyła tylko jak w buttonie jest value=1, natomiast jak ustawię na "wyślij" nie działa, czy to trzeba przepuścić przez tablicę asocjacyjną, nie wiem jak to zmienić?
lukaskolista
Po 1:
  1. <input type="submit" name="odp" value="wyslij">


Po 2:
Cytat
czemu wysyła tylko jak w buttonie jest value=1, natomiast jak ustawię na "wyślij" nie działa, czy to trzeba przepuścić przez tablicę asocjacyjną, nie wiem jak to zmienić?
Wystarczy zdumpowac $_POST['odp'] zeby sie dowiedziec smile.gif Do liczby probujesz dodac stringa (bo pod $_POST['odp'] kryje sie wlasnie string "Wyślij")
miszcz
nie wiem, wciąż nie działa (albo źle zrozumiałem), a jeśli chodzi o pierwszą część z tym paskiem?

jak mnie niemiłosiernie wku... rza to wszystko, pomoże ktoś?
z paskiem sobie poradziłem, nie wiem tylko dlaczego nie wysyła jak zmienię na "wyślij".
Dodatkowo cholernie wkurzają mnie ścieżki. Nie rozumiem, czemu jak mam coś w folderze i dam ścieżkę do pliku "./folder/plik.php" to na serwerze lokalnym mi normalnie wczytuje, a na serwerze rzeczywistym nie działa, albo wczyta część plików, a części nie, choć są w tym samym folderze
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.