Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ocenianie w skali
primo
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

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


Witam,

chodzi mi po głowie taki pomysł, aby móc oceniać np. każdy news czy artykuł w skali 1-6. Czy zrobić to w tabeli z artykułami - do każdego tytułu np. dopisywać liczbę głosów czy też zrobić w osobnej tabeli, gdzie mógłbym również dopisywać ip z którego oddano głos i w ten sposób wykluczać oddawanie głosu wielokrotnie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Jak macie to u siebie pomyślane (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
sendi16
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 29.03.2003
Skąd: Kraków

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


Ja trzymam w tej samej tabeli co artykuły. jedna kolumna to suma glosow, a w drugiej trzymam ilosc glosow.

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
primo
post
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

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


  1. <FORM ACTION="index.php?op=49" METHOD="post">
  2.  
  3. <table border="0" cellpadding="5" cellspacing="5">
  4.  
  5. <TR>
  6. <td><div class="form"><b>1</b></div></td>
  7. <td><INPUT TYPE="radio" NAME="liczba_glosow" VALUE="1"></td>
  8. </TR>
  9.  
  10. <TR>
  11. <td><div class="form"><b>2</b></div></td>
  12. <td><INPUT TYPE="radio" NAME="liczba_glosow" VALUE="2"></td>
  13. </TR>
  14.  
  15. <TR>
  16. <td><div class="form"><b>3</b></div></td>
  17. <td><INPUT TYPE="radio" NAME="liczba_glosow" VALUE="3"></td>
  18. </TR>
  19.  
  20. <TR>
  21. <td><div class="form"><b>4</b></div></td>
  22. <td><INPUT TYPE="radio" NAME="liczba_glosow" VALUE="4"></td>
  23. </TR>
  24.  
  25.  
  26. <tr>
  27. <td></td>
  28. <td><input type="submit" name="Dodaj" value="Dodaj swój głos:"></td>
  29. </tr>
  30.  
  31. </form>


  1. <?php
  2.  
  3.  
  4. $id = $_GET[&#092;"id\"];
  5. function glosowanie()
  6. }
  7. if($id){
  8. $query=&#092;"UPDATE filmy SET liczba_glosow = liczba_glosow +1 where id='$id'\";
  9. $result=mysql_query($query);
  10. }
  11. }
  12. ?>


zwiększa mi liczbę głosów, ale nie wiem jak zrobić aby też jak gość naciśnie np.2 lub 3 to aby tyle właśnie dodawał do tabeli.
Go to the top of the page
+Quote Post
crash
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Dziwne rozwiązanie bo przy każdym wywołaniu z _GET['id'] będzie zwiększana ilość głosów, ustaw może warunek na
  1. <?php
  2. if($id and isset($_POST['liczba_glosow']))
  3. ?>

A co do tego ile dodać to:
  1. <?php
  2. $query='UPDATE filmy SET liczba_glosow = liczba_glosow + '.$_POST['liczba_glosow'].' where id=.'$id;
  3. ?>


Ten post edytował crashu 4.02.2005, 09:26:13
Go to the top of the page
+Quote Post
primo
post
Post #5





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

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


chyba czegoś w tym nie rozumiem.

w tym formularzu moim liczba glosow zwiększana jest po każdym glosowaniu o jeden, a value to jest pozycja zwiekszajaca o iles tam pole suma_glosow z tabeli (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) jak zmodyfikowac zapytanie, aby rowniez uwzglednialo pole suma_glosow (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

w tym momencie wyglada to tak:

  1. <?php
  2.  
  3.  
  4. if($id and isset($_POST['liczba_glosow'])&& isset($_POST['suma_glosow'])){
  5. $bd->zapytaj(&#092;"UPDATE filmy SET liczba_glosow = liczba_glosow + '\".$_POST['liczba_glosow'].\"' where id='\".$id.\"'\");
  6.  
  7.  }
  8.  
  9.  
  10. ?>
Go to the top of the page
+Quote Post
reemii
post
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.02.2005

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


Powinno byc chyba tak:

  1. <?php
  2. if($id and isset($_POST['liczba_glosow'])&& isset($_POST['suma_glosow'])){
  3. $bd->zapytaj(&#092;"UPDATE filmy SET liczba_glosow = liczba_glosow + '\".$_POST['liczba_glosow'].\"', suma_glosow = suma_glosow + 1 where id='\".$id.\"'\");
  4.  
  5. }
  6.  
  7. ?>


O ile $liczba_glosow to jest ocena, a $suma_glosow to jest ile osob głosowało. Może nazwij troche bardziej logicznie te zmienne, bo ciężko sie połapać. Tak wogóle to można to zrobić tak. Jak osoba oddaje głos to tych głosów przybywa 1, więc nie potrzebujesz zmiennej $suma_glosow.

  1. <?php
  2. if($id and !empty($_POST['liczba_glosow']))
  3. {
  4. $bd->zapytaj(&#092;"UPDATE filmy SET liczba_glosow = liczba_glosow + '\".$_POST['liczba_glosow'].\"', suma_glosow = suma_glosow + 1 where id='\".$id.\"'\");
  5. }
  6. ?>
Go to the top of the page
+Quote Post
primo
post
Post #7





Grupa: Zarejestrowani
Postów: 254
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Strzegom

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


no może faktycznie mało czytelne nazwy, ale jakoś sobie poradziłem. Dla zainteresowanych podaję kod:

FORMULARZ DODAJĄCY PUNKTY DO TABELI

  1. <?php
  2.  
  3. require_once(&#092;"funkcje/BD.class.php\");
  4. $bd = new BD;
  5.  
  6. if (!$bd->otworz()) {
  7. die ($bd->blad());
  8. }
  9.  
  10.  
  11. if (!$bd->zapytaj(&#092;"SELECT * FROM filmy WHERE id='$id'\")) {
  12. die ($db->error());
  13. }
  14.  
  15. while($row = $bd->pobierzTablice())
  16. {
  17. $this_id = $row[0];
  18.  
  19.  
  20.  
  21. echo '<form ACTION=\"index.php?op=5&id='.$this_id.'\" \" METHOD=\"POST\">';
  22.  
  23. }
  24.  
  25. ?>


  1. <table border="0" cellpadding="5" cellspacing="5">
  2.  
  3. <tr>
  4. <td><div class="form-glosowanie"><b>1</b></div></td>
  5. <td><INPUT TYPE="radio" NAME="suma_glosow" VALUE="1"></td>
  6. </tr>
  7.  
  8. <tr>
  9. <td><div class="form-glosowanie"><b>2</b></div></td>
  10. <td><INPUT TYPE="radio" NAME="suma_glosow" VALUE="2"></td>
  11. </tr>
  12.  
  13. <tr>
  14. <td><div class="form-glosowanie"><b>3</b></div></td>
  15. <td><INPUT TYPE="radio" NAME="suma_glosow" VALUE="3"></td>
  16. </tr>
  17.  
  18. <tr>
  19. <td><div class="form-glosowanie"><b>4</b></div></td>
  20. <td><INPUT TYPE="radio" NAME="suma_glosow" VALUE="4"></td>
  21. </tr>
  22.  
  23. <tr>
  24. <td><div class="form-glosowanie"><b>5</b></div></td>
  25. <td><INPUT TYPE="radio" NAME="suma_glosow" VALUE="5"></td>
  26. </tr>
  27.  
  28. <tr>
  29. <td><div class="form-glosowanie"><b>6</b></div></td>
  30. <td><INPUT TYPE="radio" NAME="suma_glosow" VALUE="6"></td>
  31. </tr>
  32.  
  33. <tr>
  34. <td></td>
  35. <td><input type="submit" name="Dodaj" value="Dodaj swój głos:"></td>
  36. </tr>
  37.  
  38. </form>


SKRYPT UAKTUALNIAJĄCY TABELE:

  1. <?php
  2.  
  3. $suma_glosow = $_POST['suma_glosow'];
  4.  
  5. if($id and isset($_POST['suma_glosow'])){
  6. $bd->zapytaj(&#092;"UPDATE filmy SET liczba_glosow = liczba_glosow + 1, suma_glosow = suma_glos
    o
  7.  + '$suma_glosow' where id='$id'\");
  8.  
  9.  }
  10.  
  11. ?>


oczywiście trzeba go troszkę zmodyfikować na swoje potrzeby action=swoje_dane

Ten post edytował primo 4.02.2005, 12:49:27
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: 21.10.2025 - 10:02