←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

PHP
Funkcja raz na x sec oraz stronowanie

  • +
  • -
ELOS - zdjęcie ELOS 14.09.2011

Witam potrzebuje wiedzieć jak zrobić następujące rzeczy:

Strony z danymi.
Jeżeli mamy np 40 danych które są wyświetlane na stronie nie chcę aby 40 było wyświetlane tylko 10 i były strony np
Poprzednia | Następna

Funkcja raz na x sec.
Chodzi mi o to aby ktoś nie robił cały czas refresha strony i żeby mi nie wysyłało danych do bazy danych cały czas więc chce zrobić takie coś aby funkcje było można użyć raz na 10sekund.

Do tego chciał bym stworzyć jeszcze liste wyboru która będzie wczytywana z bazy danych.

mam coś takiego
<div id='teamwybierz'>
<form action="" method="post">
<select name="druzyna" onchange="this.form.submit()">
<option value="">Wybierz Druzyne</option>
<option value="Real Madryt">Real Madryt</option>
<option value="Fc Barcelona">Fc Barcelona</option>
<option value="Menchester United">Menchester United</option>
<option value="Arsenal Londyn">Arsenal Londyn</option>
<option value="Bayern Monachium">Bayern Monachium</option>
</select>
</form></div>
I chce aby te dane były czytane z bazy danych tabela druzyny, druzyna_nazwa.
Użytkownik ELOS edytował ten post 14.09.2011 17:58
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 14.09.2011

No więc do roboty. :)
LIMIT 0, 10
To zablokuje , i będzie można wyświetlić tylko 10 na stronę aleeeeeee ty nie o tym mówiłeś :)

Wiec teraz jak zrobić żeby była strona poprzednia i następna ?

$na_strone = 10;
if(!isset($_GET['p']) || intval($_GET['p']) == '0' || intval($_GET['p']) == '1')
{
  $ile = (intval($_GET['p']) - 1) * $na_strone;
}

Więc nasz LIMI będzie wyglądał :

LIMIT $ile, $na_strone


a teraz jak zrobić strony następna poprzednia?

echo '<a href="indext.php?p='.($_GET['p'] - 1).'"><< Poprzednia Strona</a> | <a href="index.php?p='.($_GET['p'] + 1).'"><b>Nastepna Strona >></b></a>';

Powyżesze echo dodaje lub odejmuje do naszej strony p=x

Przykładowe zapytanie :

mysql_query("SELECT * from `tabela` ORDER BY id DESC LIMIT $ile, $na_strone");



Myślę że pomogłem , a jeżeli nie to mam nadzieję że chociaż wprowadziłem cię na dobrą droge
Użytkownik Gh0st edytował ten post 14.09.2011 18:08
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 14.09.2011

Mam coś takiego lecz wywala mi błąd.
<?php
// informacje na temat bazy
  $host = 'localhost';
  $user = 'xxxx';
  $password = 'xxxxxx';
  $dbName = 'xxxxxxx';
// polaczenie i wyb&#243;r bazy danych
  $polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  $db = mysql_select_db($dbName, $polacz) or die(mysql_error());
$row = mysql_query("SELECT * FROM `druzyny` ORDER BY  `druzyny`.`druzyna_punkty` DESC LIMIT $ile, $na_strone")
or die('Błąd zapytania');
if(mysql_num_rows($row) > 0) {
    /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
    while($r = mysql_fetch_assoc($row)) {
echo "
   <tr>
		 <td class='row1' align='center'><b>".$r['druzyna_nazwa']."</b></font></td>
		 <td class='row1' align='center'><b>".$r['druzyna_punkty']."</font></td></tr>

";
echo '<a href="indext.php?p='.($_GET['p'] - 1).'"><< Poprzednia Strona</a> | <a href="index.php?p='.($_GET['p'] + 1).'"><b>Nastepna Strona >></b></a>';
$na_strone = 10;
if(!isset($_GET['p']) || intval($_GET['p']) == '0' || intval($_GET['p']) == '1')
{
  $ile = (intval($_GET['p']) - 1) * $na_strone;
}
    }
}
?>
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 14.09.2011

Jaki błąd ? jasnowidzem nie jestem a nie chce mi się sprawdzać
Ty zmienne chcesz wyświetlać przed przypisaniem im wartości ? gz ;D


Po 1. to co wyżej pisałem
Po 2. :D tego echo ze stronami nie umieszcza się w while tylko najlepiej poza nią .

Napisz na gg : 13212718 to ci pomogę bo mi muli przeglądarkę
Użytkownik Gh0st edytował ten post 14.09.2011 18:47
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 14.09.2011

Błąd jest w zapytaniu.
Odpowiedz

  • +
  • -
Muzzi - zdjęcie Muzzi 14.09.2011

Nie znam się tak dobrze na php, ale z tego co wiem tutaj powinien być przecinek.


$row = mysql_query("SELECT * FROM `druzyny` ORDER BY `druzyny`, `druzyna_punkty` DESC LIMIT $ile, $na_strone")



Była kropka, zamieniłem na przecinek, chodź nie wiem czy zadziała, liczą się chęci :)

@Down Usunięte ;)
Użytkownik Muzzi edytował ten post 14.09.2011 19:08
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 14.09.2011

usun to
[tutaj]

@ELOS

$na_strone = 10; if(!isset($_GET['p']) || intval($_GET['p']) == '0' || intval($_GET['p']) == '1') { $ile = (intval($_GET['p']) - 1) * $na_strone; }


To na sam początek strony daj
a echo umieść poza pętlą i powinno wszystko eleganco śmigać, jakby co to moje gg napisz , chętnie pomogę ;d
Użytkownik Gh0st edytował ten post 14.09.2011 18:55
Odpowiedz