
[php] toplista
#1
Napisano 12 03 2011 - 00:03
Otóż, każdy temat ma opcję "zagłosuj", chciałbym zrobić tak, aby po prawej stronie (na stronie głównej) wyświetlały się najwyżej oceniane tematy z poszczególnych działów. Co należy zrobić/wpisać, aby takowa opcja działała? Czy jest ktoś w stanie napisać taki skrypt?
#2
Napisano 12 03 2011 - 07:59
SELECT id, temat FORM tematy ORDER by ocena DESC LIMIT 0,3
#3
Napisano 12 03 2011 - 12:16

#4
Napisano 12 03 2011 - 12:34
#5
Napisano 12 03 2011 - 14:19
#6
Napisano 12 03 2011 - 18:26

Widze że masz MyBB więc będzie wyglądać mniej więcej tak
SELECT `totalratings` FROM `mybb_threads` ORDER BY `totalratings` DESC LIMIT 0,3;
gdzie mybb_ tam Twój prefix bazy danych. Zwróci Tobie 3 wyniki najwyżej ocenianych wątków (jak chcesz więcej, zmień LIMIT 0,3 na np LIMIT 0,5)
#7
Napisano 12 03 2011 - 18:43
#8
Napisano 12 03 2011 - 19:02
SELECT `totalratings` FROM `mybb_threads` WHERE `fid` = '3' ORDER BY `totalratings` DESC LIMIT 0,5
Gdzie:
WHERE `fid` = '3'
Tam ID konkretnego forum.
Wkleiłem to w tabelkę i nic się nie wyświetliło
Jak to w tabelkę ? Masz to zapytanie wywołać przez PHP a potem w templatkach MyBB dodać zmienną która wyniki wyświetli.
O własnym PHP w mybb:
http://wiki.mybboard.pl/kod-php-w-szablonach-jak-zaincludowac-php-w-mybb
Poczytaj też o wywoływaniu zapytań w php
http://php.net/manual/en/function.mysql-query.php
A tu jeszcze jeden pomocny link:
http://www.kess.snug.pl/?sid=10&pid=43
#9
Napisano 12 03 2011 - 20:04
#10
Napisano 12 03 2011 - 20:16
$nazwa = zawartosc;
#11
Napisano 12 03 2011 - 20:41
ob_start(); SELECT `totalratings` FROM `mybb_threads` WHERE `fid` = '6' ORDER BY `totalratings` DESC LIMIT 0,5 $php = ob_get_contents(); ob_end_clean();
Wpierw linijkę nad, a potem przed (bo nad nie działało)
function output_page($contents)
To teraz zamiast forum wyświetla mi się białe pole z napisem:
Parse error: syntax error, unexpected '`' in /home/accounts_b/bexio/public_html/inc/functions.php on line 18
Poza tym, to na wiki mybboard jest napisane, iż mam gdzieś wkleić zmienną. Postanowiłem, że wkleję do szablonu strony głównej. Mianowicie gdzie mam ją dodać?
Użytkownik B3X!O edytował ten post 12 03 2011 - 20:46
#12
Napisano 12 03 2011 - 20:50
mysql_query("SELECT `totalratings` FROM `mybb_threads` WHERE `fid` = '6' ORDER BY `totalratings` DESC LIMIT 0,5");
Ale takie coś Ci nic nie da, bo ne wyświetli wartości zwróconych, zajrzyj do ostatniego linku z mojego postu nr #8 a powinieneś połączyć to w jedną całość.
Poza tym, zamiast pchać się do "mysql_query" lepiej by było jakbyś wypatrzył w jakimś dodatku do mybb który wybiera jakieś wartości bazy danych, składnię tych zapytań i wykorzystanie do własnego, zalety tego takie że nie musiałbyś wpisywać ponownie danych dostępowych do SQL'a tylko skrypt by pobrał je z danych wpisanych przy instalacji skrypu.
#13
Napisano 12 03 2011 - 21:19
#14
Napisano 12 03 2011 - 21:36
Dobra... nie ważne...
Nie masz połączenia z bazą danych(co jest logiczne), mówi Ci to coś ? Jak nie to tu lektura: http://php.net/manual/en/function.mysql-connect.php
Jak już się połączysz z bazą, kolejna lektura, czyli wykonanie zapytania i wyświetlenie w tabelkach wyniku podałem w ostatnim linku posta #6 czyli: http://www.kess.snug.pl/?sid=10&pid=43
Gdy spełnisz kolejny punkt, wpisz w tempalach, tam gdzie tworzyłeś tą pustą tabele, zmienną która wyświetli tabele z wynikami.

Podałem Ci wszystko co jest potrzebne, na forum możemy Ci tylko pomóc, nie dostaniesz gotowca, dlatego czas abyś włączył myślenie.
PS: Nie pisz na PW bo od pomocy nie jest GG, tylko forum.
#15
Napisano 12 03 2011 - 21:45
#16
Napisano 12 03 2011 - 21:47
ob_start(); SELECT `totalratings` FROM `mybb_threads` WHERE `fid` = '6' ORDER BY `totalratings` DESC LIMIT 0,5 $php = ob_get_contents(); ob_end_clean();
Połączenie z bazą tworzy Ci CMS. Musisz tylko znaleźć odpowiednie miejsce dla kodu - miejsce, w którym mają się pokazywać tematy i wstawić tam kod.
$pobierz = mysql_query("SELECT id,temat FROM mybb_threads WHERE ORDER BY totalratings DESC LIMIT 0,5");
Użytkownik Saletra edytował ten post 12 03 2011 - 21:48
#17
Napisano 12 03 2011 - 21:51

Wyświetliło mi błąd. Muszę zrobić połączenie - jak?
Użytkownik B3X!O edytował ten post 12 03 2011 - 23:11
#18
Napisano 15 03 2011 - 16:29

#19
Napisano 15 03 2011 - 16:49
mysql_connect(host, user, haslo) or die(mysql_error());
Potem wybierasz konkretną bazę
mysql_select_db("tabela_mybb");
Potem wykonujesz zapytanie
mysql_query("SELECT `totalratings` FROM `mybb_threads` WHERE `fid` = '6' ORDER BY `totalratings` DESC LIMIT 0,5");
A następnie wyświetlasz w tabeli: http://www.kess.snug.pl/?sid=10&pid=43
#20
Napisano 15 03 2011 - 19:40

BTW: Potrzebuję gotowca, bo nie zależy mi na nauce języków, zajmuję się innymi rzeczami.

Użytkownik B3X!O edytował ten post 15 03 2011 - 19:41
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych