• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Skrypt głosowania

VPS Starter Arubacloud
0 głosów
1,159 wizyt
pytanie zadane 27 czerwca 2015 w PHP przez lukaszgo3 Początkujący (440 p.)
edycja 27 czerwca 2015 przez lukaszgo3

Witam

Mam takowy skrypt na oddawanie głosów

   $vote_down = NULL;
   $vote_up = NULL;

                        $vote_up = mysql_num_rows(mysql_query("SELECT * FROM `glitchbay_img_vote` WHERE `vote` = 1 AND `object_id`=".$img['id']));

                        $text = str_replace("#VOTEUP#", '<span style="color:#fff;" class="up_'.$img['id'].'">'.$vote_up.'</span>', $text);

                        $vote_down = mysql_num_rows(mysql_query("SELECT * FROM `glitchbay_img_vote` WHERE `vote` = 0 AND `object_id`=".$img['id']));

                        $text = str_replace("#VOTEDOWN#", '<span style="color:#fff;" class="down_'.$img['id'].'">'.$vote_down.'</span>', $text);

 

Wszystko działa ładnie, ale chciałbym aby głosy pozytywne i negatywne były widoczne jako jedna wartość, a nie osobno, tak jak jest to teraz.

Chciałem to zrobić na zasadzie,

'.$vote_up - $vote_down.'

lecz nie działa, domyślam się że pewnie dlatego ponieważ takie operacje są tu niewykonywalne.

Jakieś inne pomyły jak ujednolicić głosy?

 

2 odpowiedzi

0 głosów
odpowiedź 27 czerwca 2015 przez Comandeer Guru (604,400 p.)

Przeca powinno działać, bo mysql_num_rows zwraca liczbę. Jakiś błąd rzuca?

komentarz 27 czerwca 2015 przez lukaszgo3 Początkujący (440 p.)

Przy kodzie

$text = str_replace("#VOTEUP#", '<span style="color:#fff;" class="up_'.$img['id'].'">'.$vote_up.'</span>', $text);

Wygląda tak

 

a po zmianie na

$text = str_replace("#VOTEUP#", '<span style="color:#fff;" class="up_'.$img['id'].'">'.$vote_up - $vote_down.'</span>', $text);

tak

komentarz 27 czerwca 2015 przez efiku Szeryf (75,160 p.)

$text = str_replace("#VOTEUP#", '<span style="color:#fff;" class="up_'.$img['id'].'">'.$vote_up.'</span> <strong> - </strong> ', $text);

$text = str_replace("#VOTEDOWN#", '<span style="color:#fff;" class="down_'.$img['id'].'">'.$vote_down.'</span>', $text);

Tak?

Btw, mysql_* są deprecated.

0 głosów
odpowiedź 30 czerwca 2015 przez lukaszgo3 Początkujący (440 p.)

Prolbem niejako rozwiązałem, a kod wygląda teraz nastepująco;

 $vote_down = NULL;
                        $vote_up = NULL;

                        $vote_up = mysql_num_rows(mysql_query("SELECT * FROM `tentego_img_vote` WHERE `vote` = 1 AND `object_id`=".$img['id']));

                        $text = str_replace("#VOTEUP#", '<span style="color:#fff;" class="up_'.$img['id'].'">'.$vote_up.'</span>', $text);

                        $vote_down = mysql_num_rows(mysql_query("SELECT * FROM `tentego_img_vote` WHERE `vote` = 0 AND `object_id`=".$img['id']));

                        $text = str_replace("#VOTEDOWN#", '<span style="color:#fff;" class="down_'.$img['id'].'">'.$vote_down.'</span>', $text);

                        $text = str_replace("#VOTE#",$vote_up - $vote_down,$text);

Jak widać #VOTE# jest odpowiedzialne za rożnice głosów, niestety nie zlicza ich na bierząco tak jak to było przy #VOTEUP# i #VOTEDOWN#. Oddany głos widzimy dopiero po odwieżeniu strony. Jak powinna wyglądać mniej wiecej modyfikacja aby wszystko pieknie działało? ;)

komentarz 30 czerwca 2015 przez Comandeer Guru (604,400 p.)
Jeśli oddany głos widać po odświeżeniu, to ewidentny znak, że najpierw wyświetlasz, a później dodajesz głos, więc wystarczy te fragmenty kodu zamienić miejscami.
komentarz 30 czerwca 2015 przez lukaszgo3 Początkujący (440 p.)
         $text = str_replace(,$vote_up - $vote_down, "#VOTE#"$text);

O to chodzi?

komentarz 30 czerwca 2015 przez Comandeer Guru (604,400 p.)
Nie, chodzi mi o fragment, w którym głos jest dodawany do bazy.
komentarz 30 czerwca 2015 przez lukaszgo3 Początkujący (440 p.)
Hmmm głos dodatni i ujemny są dodawane do bazy, a Vote je tylko zlicza jak dobrze rozumiem, więc jakbyś mogł mnie troche naprowadzić na co mam właściwie zwrócic uwage ;)
komentarz 30 czerwca 2015 przez Comandeer Guru (604,400 p.)
Chodzi o to czy najpierw jest dodawany ten głos do bazy, a dopiero później jest ten kod wyświetlający, czy najpierw jednak wyświetla a dopiero później dodaje.
komentarz 30 czerwca 2015 przez lukaszgo3 Początkujący (440 p.)
Przekaz zrozumiałem, ale niestety nie mam pojęcia gdzie powinienem tego szukać aby to pozmieniać.

Podobne pytania

0 głosów
1 odpowiedź 204 wizyt
pytanie zadane 3 lipca 2015 w PHP przez No Lime Gaduła (4,540 p.)
0 głosów
3 odpowiedzi 735 wizyt
pytanie zadane 23 kwietnia 2015 w HTML i CSS przez Bartaz Początkujący (440 p.)
0 głosów
2 odpowiedzi 204 wizyt
pytanie zadane 17 października 2017 w PHP przez NogaProgramowania Nowicjusz (160 p.)

92,843 zapytań

141,782 odpowiedzi

320,858 komentarzy

62,174 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...