Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] System glosowania, jak to zrobic?
Selevan
post
Post #1





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

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


Mam taki kod

  1. <?php
  2. mysql_connect ("localhost", "xxx", "xxx") or //staramy połączyć się z bazą danych
  3. die ("Nie można połączyć się z bazą MySQL");
  4. $wynik = mysql_query("SELECT * FROM Screeny ORDER BY nr")
  5. or die('Błąd zapytania');
  6. if(mysql_num_rows($wynik) > 0) {
  7. while($r = mysql_fetch_assoc($wynik)) {
  8. $visible = ($r['admin']);
  9. if ($visible == 1)
  10. {
  11. echo "<tr>";
  12. echo "<td id=tblnamedata><strong><a href=profil.php?id=".$r['nick'].">".$r['nick']."</a></strong></td>";
  13. echo '<td><strong><a href='.$r['Link'].'><img src='.$r['Miniaturka'].' alt=""/></a></strong></td>';
  14. echo "<td id=tblnamedata><strong>";
  15. echo wordwrap($r['Komentarz'],'20','<br />', 1);
  16. echo "<form method=post action=\"glosuj.php\">";
  17. echo '<select name=glosowanie'.$r['nr'].'>';
  18. echo "<option value=1>1</option>";
  19. echo "<option value=2>2</option>";
  20. echo "<option value=3>3</option>";
  21. echo "<option value=4>4</option>";
  22. echo "<option value=5>5</option>";
  23. echo "<option value=6>6</option>";
  24. echo "</select>";
  25. echo '<input name=submit'.$r['nr'].' type=button value=Głosuj />';
  26. echo "</form>";
  27. echo "</td></strong>";
  28. echo "</tr>";
  29. }
  30. else
  31. {
  32. }
  33. }
  34. }
  35. ?>


I teraz chodzi mi o to, zeby w pliku "glosuj.php" zrobic skrypt ktory by wiedzial, przycisk o jakiej nazwie wcisnelismy, i jaka wybralismy ocene, a potem dodal te informacje do bazy danych.

Np przy screenshocie z numerem 31, galeria wygeneruje obrazek, komentarz oraz formularz, gdzie lista z wyborem ocen bedzie miala nazwe "glosowanie31" oraz przycisk "submit31"

Wtedy przyciskajac przycisk submit31, skrypt glosuj.php dodal by informacje do bazy danych, do wiersza gdzie NR = 31.

Mam nadzieje ze cos tam zrozumieliscie biggrin.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
ADeM
post
Post #2





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


Nie lepiej po prostu użyć pola hidden?


--------------------
Go to the top of the page
+Quote Post
Selevan
post
Post #3





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

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


jeszcze jak bym wiedzial w jaki sposob.. smile.gif
Go to the top of the page
+Quote Post
ADeM
post
Post #4





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


  1. echo '<input name=submit'.$r['nr'].' type=button value=Głosuj />';

Zamień na:
  1. echo '<input type="hidden" name="id" value="'. $r[ 'nr' ] . '" />';
  2. echo '<input name=submit type=button value=Głosuj />';

A później odbierasz jak pozostałe dane:
  1. echo $_POST[ 'id' ];



--------------------
Go to the top of the page
+Quote Post
Selevan
post
Post #5





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

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


a co dac w
  1. echo "<form method=post action=\"glosuj.php\">";
action?

chyba jednak nie do konca lapie jak dziala ten hidden ;P
Go to the top of the page
+Quote Post
ADeM
post
Post #6





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


W action ma być adres do pliku, w którym będziesz te dane odczytywał i operował na nich.
EDIT:
A ten hidden działa dokładnie tak samo jak normalne pole typu text, z tym, że nie jest wyświetlany.

Ten post edytował ADeM 18.11.2010, 22:07:34


--------------------
Go to the top of the page
+Quote Post
Selevan
post
Post #7





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

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


cos to jakos nie chodzi..
Go to the top of the page
+Quote Post
ADeM
post
Post #8





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


To może pokaż kod?


--------------------
Go to the top of the page
+Quote Post
Selevan
post
Post #9





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

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


  1. echo "<tr>";
  2. echo "<td id=tblnamedata><strong><a href=profil.php?id=".$r['nick'].">".$r['nick']."</a></strong></td>";
  3. echo '<td><strong><a href='.$r['Link'].'><img src='.$r['Miniaturka'].' alt=""/></a></strong></td>';
  4. echo "<td id=tblnamedata><strong>";
  5. echo wordwrap($r['Komentarz'],'20','<br />', 1);
  6. echo "<form method=post action=galeria.php >";
  7. echo '<select name=glosowanie'.$r['nr'].'>';
  8. echo "<option value=1>1</option>";
  9. echo "<option value=2>2</option>";
  10. echo "<option value=3>3</option>";
  11. echo "<option value=4>4</option>";
  12. echo "<option value=5>5</option>";
  13. echo "<option value=6>6</option>";
  14. echo "</select>";
  15. echo '<input type="text" name="id" value="'.$r['nr'].'" />';
  16. $blaa = $_POST['id'];
  17. $bl = $_POST['glosowanie'];
  18. echo '<input type="text" name="ocena" value="'.$bl.'"/>';
  19. echo '<input name=submit type=button value=Głosuj />';
  20. echo "</form>";
  21. echo "</td></strong>";
  22. echo "</tr>";


Chcialem zeby w drugim zawsze pokazywalo sie jaka wybralem opcje z tej listy glosowanie.$r['nr'].

ale zasadniczo chodzi o to zeby po wcisnieciu submit do bazy danych "screeny" przy wierszu gdzie kolumna "nr" zawiera taka sama wartosc co $_POST['id'], do kolumny "OCENA" dodala sie wartosc jaka wybralismy z listy, tzn z pola "glosowanie'.$r['nr'].'"

smile.gif

Jak cos takiego zrobic?
Go to the top of the page
+Quote Post
ADeM
post
Post #10





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


  1. echo "<tr>";
  2. echo "<td id=tblnamedata><strong><a href=profil.php?id=".$r['nick'].">".$r['nick']."</a></strong></td>";
  3. echo '<td><strong><a href='.$r['Link'].'><img src='.$r['Miniaturka'].' alt=""/></a></strong></td>';
  4. echo "<td id=tblnamedata><strong>";
  5. echo wordwrap($r['Komentarz'],'20','<br />', 1);
  6. echo "<form method=post action=galeria.php >";
  7. echo '<select name="ocena">';
  8. echo "<option value=1>1</option>";
  9. echo "<option value=2>2</option>";
  10. echo "<option value=3>3</option>";
  11. echo "<option value=4>4</option>";
  12. echo "<option value=5>5</option>";
  13. echo "<option value=6>6</option>";
  14. echo "</select>";
  15. echo '<input type="hidden" name="id" value="'.$r['nr'].'" />';
  16. echo '<input name=submit type=button value=Głosuj />';
  17. echo "</form>";
  18. echo "</td></strong>";
  19. echo "</tr>";


I teraz w pliku galeria robisz zapytanie aktualizujące do bazy (o ile operujesz na bazie danych), dla rekordów o nr = $_POST[ 'id' ]. Wartość ocena ustalasz na ocena + $_POST[ 'ocena' ].


--------------------
Go to the top of the page
+Quote Post
Selevan
post
Post #11





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

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


cos takiego w galeria.php ?
  1. <?
  2. mysql_connect ("localhost", "xxx", "xxx") or //staramy połączyć się z bazą danych
  3. die ("Nie można połączyć się z bazą MySQL");
  4. mysql_select_db('xxxs', $db);
  5. $wynik = mysql_query("SELECT * FROM Screeny ORDER BY nr")
  6. or die('Błąd zapytania');
  7. $sqld = "UPDATE Screeny SET ocenaL = ocenaL + ".$_POST['ocena']." WHERE nr = ".$_POST['id']."";
  8. mysql_query($sqld);
  9. ?>
Go to the top of the page
+Quote Post
ADeM
post
Post #12





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


A sprawdziłeś czy działa tak jak chcesz?


--------------------
Go to the top of the page
+Quote Post
Selevan
post
Post #13





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

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


No wlasnie nie.. bo po przycisnieciu przycisku submit doslownie nic sie nie dzieje..
Go to the top of the page
+Quote Post
ADeM
post
Post #14





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


Co znaczy nic sie nie dzieje? Jakieś błędy? Zmiany w bazie?


--------------------
Go to the top of the page
+Quote Post
Selevan
post
Post #15





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

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


Wlasnie o to chodzi ze zero zmian w bazie.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 17:56