Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Rekomendowane odpowiedzi

Opublikowano

Od paru dni probuje jakos policzyc ilosc thx w danym temacie i je wyswietlic na forum,

thx sa zapisane w polu post_thanks w tabeli ibf_posts w postacji id_usera,id_usera,id_usera

pomyslalem aby policzyc ilosc przecinkow w polu i dodac do wyniku 1 bo przecinkow jest zawsze o 1 mniej niz ilosc id userow

i wyszlo cos takiego

select CHAR_LENGTH(post_thanks)-CHAR_LENGTH(REPLACE(post_thanks,',','')) + 1 from ibf_posts where pid = id_posta ;

poprawnie liczy ilosc przecinkow i dodaje 1 do wyniku

pytanie: czy to sie nada? bo wyczytalem ze to nie jest zbyt optymalne zapytanie,

mozna takze zrobic to w inny sposob, dodac jedno pole dla tej tabeli i sume thx zapisac w postacji liczbowej w niej i ja wyswietlac wtedy

i jak to wmontowac w kod thanks ^.^

Opublikowano

w pliku thanks.php na samym dole masz juz napisaną funkcje (thanks_recount) możesz zobaczyć jak zrobił to autor moda , oczywiście Ciebie będzie interesował tylko fragment tej funkcji

jam_artists_button.png

  • Manager
Opublikowano

To zależy co chcesz takim zapytaniem zrobić. Innymi słowy - czy chcesz często wykorzystywać takie zapytanie. Tak czy inaczej najlepiej uruchomić tę funkcję, co Batman napisał wyżej i wtedy odnieść się do wyników. Ale tak długo jak nie wiem do czego Ci to potrzebne, jak często chcesz to sprawdzać to ciężko coś więcej napisać.

P.s. przenoszę do działu Zaawansowane programowanie.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

sposob 1

czyli liczenie przecinkow w tym polu przy otwarciu tematu za kazdym razem i wyswietlanie ilosci w temacie

lub sposob 2

dodajemy pole o nazwie thanks_ilosc w tabeli ibf_posts

- przy otwarciu tematu ilosc thx bedzie pobierana z tego pola

- zwiekszanie tej wartosci w tym polu o 1 bedzie za kazdym razem gdy uzytkownik podziekuje w danym temacie

do tego trzeba by najpierw policzyc ilosc thx w kazdym poscie i wpisac ja do nowego pola

pierwszy sposob wydaje sie najprostszy ale troche nieoptymalny, bo liczy za kazdym razem ilosc thx w polu

drugi sposob to tylko pobieranie wartosci z pola ktora jest aktualizowana gdy uzytkownik podziekuje w temacie

Opublikowano

nie rozumiem twojego posta, nie chodzi tutaj o zwiekszanie ilosc thx dla uzytkownika tylko o aktualizowanie wartosci w nowym polu w ktorym zapisana jest ilosc podziekowan za temat jesli uzytkownik podziekuje i wyświetlanie jej przy otwarciu tematu, przecież w tej modyfikacji nie ma wyswietlania ilosc thx w temacie

  • Manager
Opublikowano

Dobra, nie doczytałem, że mowa tutaj o temacie.

No to jeden pomysł, w sumie chyba najbardziej logiczny - pobrać wszystkie dane z pola thanks za pomocą jednego zapytania ( normalnego, nie korzystającego tak jak Twój pierwszy z tego tematu ), a potem obrobienie danych. Wbrew pozorom zajmie to mniej zasobów niż te złożone zapytania SQL.

W razie problemów z lokalizacją w pliku gdzie to dać, jakie zapytania etc. pisz. ;)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano (edytowane)

dodalem nowe pole do tabeli posts o nazwie thanks_ilosc, w tym polu bedzie zapisywana aktualna ilosc thx dla danego posta, bedzie aktualizowana za kazdym razem gdy uzytkownik podziekuje w jakims temacie

w pliku thanks.php w lini 94

zamienilem

		$post = $this->ipsclass->DB->simple_exec_query( array( 'select' => '`post_thanks`, `topic_id`, `author_id`', 'from' => 'posts', 'where' => '`pid` = ' . $post_id ) );

na

		$post = $this->ipsclass->DB->simple_exec_query( array( 'select' => '`post_thanks`, `thanks_ilosc`, `topic_id`, `author_id`', 'from' => 'posts', 'where' => '`pid` = ' . $post_id ) );

w pliku thanks.php pod

		// Add currend member to "post_thanks"
	$insert_thanks = ( $post['post_thanks'] == "" ) ? ( $this->ipsclass->member['id'] ) : ( $post['post_thanks'] . "," . $this->ipsclass->member['id'] );

	$this->ipsclass->DB->do_update( 'posts', array( 'post_thanks' => $insert_thanks), 'pid = ' . $post_id );

dodalem (dodawanie +1 do wartosci w polu thanks_ilosc za kazdym razem gdy uzytkownik podziekuje w jakims poscie/temacie)

chyba cos nie tak, bo za kazdym razem wpisuje 1 zamiast dodawac 1

		// Aktualizowanie ilosci thx w temacie (w polu thanks_ilosc) gdy uzytkownik podziekuje, czyli dodanie +1 do aktualnej wartosci z pola "
	$this->ipsclass->DB->do_update( 'posts', array( 'thanks_ilosc' => $post_id['thanks_ilosc']+1), 'pid = ' . $post_id );

LOOK & FEEL > Edit Template HTML > Topic View > RenderRow:

po

{$post['who_thanks']}

dodalem (wyswietlanie wartosci z pola thanks_ilosc)

{$post['thanks_ilosc']}

108695.png

jak widac na screenie nieulozylem tego estetycznie w bicie, probowalem to dopisac do tempelki thanks_separator (tej ktora wyswietla kto podziekowal) w tym miejscu gdzie na screenie jest (fdsf) ale jakos niewyswietla mi sie wartosc z tego pola

pozostalo jeszcze ladnie ulozyc to aby bylo estetyczne i wykonac jednorazowo zapytanie aby przeliczyc ilosc thx w kazdym poscie i wpisac wartosci do pola thanks_ilosc, potem wartosc w tym polu bedzie juz automatycznie aktualizowana gdy uzytkownik podziekuje w poscie (sie powtarzam juz)

Edytowane przez andriu-m
Opublikowano

to co robisz niema najmniejszego sensu ;)

wszysko co musisz zrobić to w pliku topic.php przeliczyć podziękowania i je wyświetlić

nie trzeba nic pobierać i dodawać do bazy

masz te podziękowania już w

row['post_thanks']

i wynik musisz zapisać jako

row['thanks_ilosc']

co by Ci

{$post['thanks_ilosc']}

zadziałało ;)

poczytaj o funkcji count

jam_artists_button.png

  • Manager
Opublikowano
Od paru dni probuje jakos policzyc ilosc thx w danym temacie i je wyswietlic na forum,
eee DawPi ale po co ?

O ile dobrze rozumiem On chce tylko wyświetlić ile jest podziękowań w danym poście

;)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano (edytowane)

dokladnie ;]

wroce w weekend to posiedze nad tym

wszysko co musisz zrobić to w pliku topic.php przeliczyć podziękowania i je wyświetlić

liczyc ilosc przecinkow +1 czy policzyc ilosc id ? bo z tym liczeniem ile id jest nie wiem czy wyjdzie (chyba ze opre sie na funkcji recount thanks w thanks.php)

Edytowane przez andriu-m
Opublikowano (edytowane)

w temacie dla kazdego osobno, a ilosc thx jest zapisana w tabeli z postami wiec trzeba policzyc w poscie aby wyswietlic ja w temacie

Edytowane przez andriu-m
  • 3 tygodnie później...
  • Manager
Opublikowano
Informacja:
Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o założenie nowego tematu.
Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.