Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][AJAX][PHP] Ocena zdjęć +/-
samuello
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 30.11.2011

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


Problem mój polega na wprowadzeniu do kodu strony systemu oceniania zdjęć typu thumbs up/down. Generalnie chodzi mi o dośc popularny system oceny zdjęć, który można spotkać na stronach typu kwejk, demotywatory. Konkretnie chodzi o to, że nie bardzo mam pomysł na to jak ten system zgrać z pętlą, która przeszukuje bazę danych i wyświetla obrazki na stronie.

Posiadam bazę danych, która składa się m. in. z tabeli "shity", w której to mam m. in. kolumny: "id" oraz "lubi" (zapisuje ilość klinięć na +). Poniżej załaczam sposób w jaki wyświetlam obrazki na stronie.
  1. $zapytanie = mysql_query("SELECT * FROM shity WHERE lubi<='6' ORDER BY id DESC LIMIT $l1,$l2"); //wybiera tabelę i pobiera z niej dane dla obrazków z odpowiednią wartością "lubi"
  2.  
  3. if ($zapytanie) { //jeśli zapytanie można wykonać to...
  4. while ($shit = mysql_fetch_array($zapytanie)) { //robi pętlę i przypisuje wszystkie dane do zmiennej
  5. if($shit['typ']=='obrazek') {
  6. if($ustawienia['img_title']) {
  7. echo '<div class="img_title"><a href="obrazek.php?'.$shit['id'].'">'.$shit['tytul'].'</a></div>';
  8. }
  9. echo '<div class="shit"><a href="obrazek.php?'.$shit['id'].'"><img src="'.$shit['obrazek'].'" alt="'.$shit['tytul'].'" title="'.$shit['tytul'].'"/></a>
  10. <div>
  11.  
  12. //ponizej część kodu, która odpowiada za wyświetlanie "kciuków" do głosowania i wyświetlna ilość "lubi" z bazy danych
  13.  
  14. <a href="#" id="gora"><img src="img/ok.gif" id="gora" /></a>';
  15.  
  16. print '<span id="ile"> '.($shit['lubi']).'</span> ';
  17.  
  18. echo '<a href="#" id="dol"><img src="img/bad.gif" /></a>
  19.  
  20. </div>
  21. </div>'; }


Na stronie http://devplugin.pl/aktualnosci/jqueryajax...em-oceny-tresci znalazłem prosty system oceniania typu +/-. Stąd też próbuję iść tą ścieżką... mam kolejny kod (nazwijmy go dalej glos.php), który modyfikuje liczbę głosów "lubi" w bazie danych:

  1. <?php
  2. mysql_connect ("...","...","..."); //łącze z bazą [serwer bazy,użytkownik,hasło]
  3. mysql_select_db ("..."); //nazwa bazy
  4.  
  5. $increase = "UPDATE shity SET lubie=lubie+1 WHERE id='$shit['id']'";
  6. $decrease = "UPDATE shity SET lubie=lubie-1 WHERE id='$shit['id']'";
  7. $active_rate = mysql_query("SELECT * FROM shity WHERE id='$shit['id']'");
  8. $how = 0;
  9. if($rt = mysql_fetch_assoc($active_rate)) {
  10. $how = $rt['lubi'];
  11. }
  12. if($_POST['akcja'] == 'dodaj') {
  13. mysql_query($increase);
  14. print $how++;
  15. } elseif($_POST['akcja'] == 'odejmij') {
  16. mysql_query($decrease);
  17. print $how--;
  18. }
  19. ?>


oraz dołączony, zgodnie z instrukcją na wyżej wymienionej stronie kod:
  1. $(document).ready(FUNCTION() {
  2. $("#gora").unbind().bind("click", FUNCTION() {
  3. $.ajax({
  4. type: 'POST',
  5. url: 'glos.php',
  6. DATA: 'akcja=dodaj',
  7. success: FUNCTION(wynik) {
  8. $("#ile").html(wynik)
  9. }
  10. });
  11. RETURN false;
  12. });
  13. $("#dol").unbind().bind("click", FUNCTION() {
  14. $.ajax({
  15. type: 'POST',
  16. url: 'glos.php',
  17. DATA: 'akcja=odejmij',
  18. success: FUNCTION(wynik) {
  19. $("#ile").html(wynik)
  20. }
  21. });
  22. });
  23. RETURN false;
  24. });


Problem polega na tym, że to wszystko nie działa tak jak powinno :] A konkretnie: jak w pliku glos.php zadać w zmiennej $increase i $decrease wartość "id" tak aby kliknięcie konkretnego kciuka pod przypisanym mu obrazkiem odnosiło się do tego właśnie obrazka (czyli do jego id czy nazwy...)(IMG:style_emoticons/default/questionmark.gif) Może istnieje możliwość przypisania id obrazkowi kciuka w który klika użytkownik dająć +, a następnie pobrać to id w skrypcie glos.php? Może osobna tabela w bazie danych do ocen? A może jest inny sposób na stworzenie tego systemu oceniania?

Z góry dziękuję za wszelkie uwagi i sygestie.
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: 3.10.2025 - 06:49