Skocz do zawartości
  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

Promowane odpowiedzi

QSZowaty    1,617

Witam, mam problem, znalazłem na internecie system głosowania

 http://demo.w3bees.com/jquery-voting-system/ 

i chciałbym go zastosować w taki sposób, że im więcej głosów, tym serwer jest wyżej na liście. Pytanie brzmi, co miałbym dokładnie edytować, tzn. jakie pliki, dodam że skrypt masterboost'a zaczerpnąłem z tego forum, oto link: 

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
QSZowaty    1,617

http://makeyweb.tk/boost/index.php  to jest demko

 

a tu kod tej tabelki ze strony głównej, pytanie brzmi gdzie mam dodać warunek który będzie segregował serwery względem ilości głosów?

		<?php
			 echo '<table border="0" cellspacing="0" cellpadding="5" class="tborder">
			 <thead>
<tr>
<td class="thead2" colspan="5">
	<div><a><div class="ikonka-dzial"><i class="fa fa-info"></i></div> Lista Serwerów</a></div>
</td>
</tr>
</thead>
</table>';
		if(isset($_GET['mod'])){
			$_GET['mod'] = clear($_GET['mod']);
			$query = "SELECT COUNT(*) as all_posts FROM servery WHERE `status` = '1' AND `mod` = '{$_GET['mod']}'";
		}else{
			$query = "SELECT COUNT(*) as all_posts FROM servery WHERE `status` = '1'";
		}
        $result = mysql_query($query) or die (mysql_error());
        $row = mysql_fetch_array($result);
        extract($row);
        $onpage = 15; //ilość serwerów na stronę
        $navnum = 5; //ilość wyświetlanych numerów stron, ze względów estetycznych niech będzie to liczba nieparzysta
        $allpages = ceil($all_posts/$onpage);
        if(!isset($_GET['page']) or $_GET['page'] > $allpages or !is_numeric($_GET['page']) or $_GET['page'] <= 0){
			$page = 1;
        }else{
			$page = $_GET['page'];
        }
        $limit = ($page - 1) * $onpage;
		if(isset($_GET['mod'])){
			$_GET['mod'] = clear($_GET['mod']);
			$query = "SELECT * FROM servery WHERE `status` = '1' AND `mod` = '{$_GET['mod']}' ORDER BY players DESC LIMIT $limit, $onpage";
		}else{
			$query = "SELECT * FROM servery WHERE `status` = '1' ORDER BY players DESC LIMIT $limit, $onpage";
		}
        $sql = mysql_query($query) or die (mysql_error());			
if(mysql_num_rows($sql) > 0) {
	echo '<table border="0" cellspacing="0" cellpadding="5" class="table table-bordered table-striped"><thead><tr>
			<th width="1%">#</th>
			<th width="1%">Gra</th>
			<th width="37%">Nazwa serwera</th>
			<th width="15%">Adres IP</th>
			<th width="15%">Mapa</th>
			<th width="10%">Gracze</th>
		  </tr></thead><tbody>';
	$num = 1;
	while($row=mysql_fetch_array($sql)) {
		echo '<tr>
				<td>'.$num.'</td>
				<td><img src="./templates/dark/img/favicon.ico" width="17" hight="17"/></td>
				<td><a href="./serwerinfo.php?ip='.$row['address'].'" >'.$row['hostname'].'</a></td>
				<td>'.$row['address'].'</td>
				<td><span class="label">'.$row['map'].'</span></td>
				<td>'.$newMain->showbar($row['players'], $row['maxplayers']).'</td>
			  </tr>';
		$num++;
	}
	echo '</tbody></table>';
} else {
echo "Nie dodano jeszcze żadnego serwera!";
}
        if($navnum > $allpages){
                $navnum = $allpages;
        }
        $forstart = $page - floor($navnum/2);
        $forend = $forstart + $navnum;
        if($forstart <= 0){ $forstart = 1; }
        $overend = $allpages - $forend;
        if($overend < 0){ $forstart = $forstart + $overend + 1; }
        $forend = $forstart + $navnum;
        $prev = $page - 1;
        $next = $page + 1;
        $script_name = $_SERVER['SCRIPT_NAME'];
        echo "<div><center><ul class=\"pagination\">";
        if($page > 1) echo "<li><a href=\"".$script_name."?page=".$prev."\">&laquo;</a></li>";
        if ($forstart > 1) echo "<li><a href=\"".$script_name."?page=1\">1</a></li>";
        if ($forstart > 2) echo "<li>...</li>";
        for($forstart; $forstart < $forend; $forstart++){
                if($forstart == $page){
                        echo "<li class=\"active\">";
                }else{
                        echo "<li>";
                }
                echo "<a href=\"".$script_name."?page=".$forstart."\">".$forstart."</a></li>";
        }
        if($forstart < $allpages) echo "<li>...</li>";
        if($forstart - 1 < $allpages) echo "<li><a href=\"".$script_name."?page=".$allpages."\">".$allpages."</a></li>";
        if($page < $allpages) echo "<li><a href=\"".$script_name."?page=".$next."\">&raquo;</a></li>";
        echo "</ul></center></div><div class=\"clear\"></div>";	
	if($user){
		echo '<a href="mojeserwery.php" role="button" class="btn btn-inverse" style="margin:10px;">Dodaj nowy serwer</a>';
	}
?>  

 

@Salvation co do miejsca to już sam ogarnę, mi chodzi tylko o warunek który muszę dodać :/

 

Link do pobrania skryptu głosowania: http://skrypty.klocus.pl/2014/01/dynamiczny-system-glosowania.html

Ewentualnie jeżeli ktoś ma inny, prostszy skrypt na głosowanie, to poprosiłbym link xD

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,524

Tutaj nie masz wyświetlania oceny serwera, a sortowanie odbywa się po ilości graczy na serwerze. Jaka kolumna w tabeli `servery` odpowiada za liczbę głosów?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
QSZowaty    1,617
19 minut temu, Salvation napisał:

Tutaj nie masz wyświetlania oceny serwera, a sortowanie odbywa się po ilości graczy na serwerze. Jaka kolumna w tabeli `servery` odpowiada za liczbę głosów?

Mi chodzi właśnie żeby dodać kolumnę odpowiedzialną za liczbę głosów do mysql i warunek do tabelki, resztę już trochę potrafię, próbuję się uczyć jeszcze :/

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,524

Zapytanie SQL:

ALTER TABLE `servery` ADD `votes` INT NULL;

Albo skorzystaj z PMA (PhpMyAdmin) i dodaj kolumnę poprzez GUI. Po wykonaniu zapytania powstanie kolumna o nazwie `votes` w tabeli `servery`, która będzie przechowywać wartości typu INT.

Następnie zrób sobie plik PHP, w którym oddajesz głos na wybrany serwer, ale nie zapomnij o zabezpieczeniu. Podepnij to pod AJAX - oddasz głos bez przeładowywania strony na nowo, ale ciężko będzie na nowo posortować tabelę, no chyba, że przerobisz troszkę skrypcik - albo możesz to przepuścić prosto przez PHP i odświeżyć stronę po dodaniu głosu.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
QSZowaty    1,617

no dobra :D jaki warunek zmienić w kodzie który jest wyżej, aby sortowało na zasadzie kto ma więcej głosów? :D

 

Edit: dobra ogarnąłem warunek, ale teraz jak mam podpiąć skrypt głosowania, jakieś propozycje?

Edytowane przez Makey ツ

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
BlackIce    3,524

Ta część zapytania:

ORDER BY players DESC

sortuje po ilości graczy, a żeby zamiast ilości graczy sortowało po ilości głosów musi wyglądać tak:

 ORDER BY `votes` DESC

lub żeby odbywało się sortowanie najpierw po głosach, a później po ilości graczy, to tak:

ORDER BY `votes` DESC, `players` DESC

Natomiast zapytanie, które doda Tobie +1 głos po (prawdopodobnie) kliknięciu będzie wyglądało coś na wzór tego:

UPDATE `servery` SET `votes` = `votes` +1 WHERE `id_server` = $id_servera_otrzymanego_po_kliknięciu;

 

Edytowane przez Salvation
  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
QSZowaty    1,617
5 minut temu, NS napisał:

Mogę podesłać Ci gotowy plik głosowania tylko muszę go znaleść

słuchaj, doszedłem już do momentu sortowania serwerów poprzez ilość głosów, potrzebny mi tylko gotowy plik z głosowaniem + instrukcja co i jak, jak coś to zapłacę ;)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
MatYs    252
19 godzin temu, Makey ツ napisał:

słuchaj, doszedłem już do momentu sortowania serwerów poprzez ilość głosów, potrzebny mi tylko gotowy plik z głosowaniem + instrukcja co i jak, jak coś to zapłacę ;)

 

Proponuję przy głosowaniu dać jakiś kod do przepisania, bo takto będą autosurfami jechać głosy. Chyba, że zrobisz dla zalogowanych, albo coś innego.

  • Lubię to! 1

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Micro-Adv    13
3 minuty temu, MatYs napisał:

 

Proponuję przy głosowaniu dać jakiś kod do przepisania, bo takto będą autosurfami jechać głosy. Chyba, że zrobisz dla zalogowanych, albo coś innego.

Najlepiej zastosować np: reCaptcha

https://www.google.com/recaptcha/intro/index.html

 

Nawet u siebie mam ten system.

tylko dla zalogowanych to też słaba opcja, zrobienie 100 kont to chwila :P

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
MatYs    252
1 minutę temu, Arcaro napisał:

Najlepiej zastosować np: reCaptcha

https://www.google.com/recaptcha/intro/index.html

 

Nawet u siebie mam ten system.

tylko dla zalogowanych to też słaba opcja, zrobienie 100 kont to chwila :P

Jak jakiś debil zrobi 100 kont i zweryfikuje adresy email to co ci zależy? Mailing będziesz miał :) Chyba, że zrobi też nowe maile, ale raczej nikomu dla punktów nie chciałoby się robić nowe konta email, żeby mieć jeden więcej punktu.

 

Captcha nie musi być koniecznie, bo wkurza. Ja polecam nawet pytanie, bo w autosurfach nie odpowiadają. Czy chcesz zabłosować TAK / NIE i tyle.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
QSZowaty    1,617

spokojnie,zabezpieczenie będzie, na chwilę obecną potrzebny mi skrypt głosowania tylko :D

 

Można zamykać ;)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×