Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Stronicowanie-problem ze zmiennymi
Forum PHP.pl > Forum > Przedszkole
wacek800
Witam.
Mam pewien problem z dzieleniem wyników na stronie, a mianowicie po wpisaniu kryterium wyszukiwania na pierwszej stronie jest wszystko ok, czyli wyswietla się tyle rekordów ile chcę, ale jak kliknę na stronę nr 2 to zwraca mi wszystkie rekordy z bazy. Jestem początkującym w te klocki i ni wiem gdzie jest błąd, dlatego zwrcam się z prośbą do kogoś mądrzejszego ode mnie o pomoc

Mój formularz
<?php
session_start();

if (isset($_SESSION['zalogowany']))
{
echo 'Zalogowano jako '.($_SESSION['zalogowany']).'.';
echo '<br />';
require_once('funkcje.php');
tworz_naglowek_html('Szukaj ogłoszenia');
}
else
{
// nie jest zalogowany

echo 'Brak zalogowania.<br />';
include("logowanie_form.php");

exit;
}




echo '<form action=szukaj.php method=get>';
echo '<table>';
echo '<tr><td>Marka:</td><td><select name=marka>
<option>Alfa romeo
<option>Audi
<option>Autobusy
<option>Bentley
<option>Bmw
<option>Cadillac
<option>Chevrolet
<option>Chrysler
<option>Citroen
<option>Daewoo
<option>Daihatsu
<option>Dodge
<option>Ferrari
<option>Fiat
<option>Ford
<option>Honda
<option>Hyundai
<option>Isuzu
<option>Iveco
<option>Jaguar
<option>Jeep
<option>Jelcz
<option>Kia
<option>Lamborghini
<option>Lancia
<option>Lexus
<option>Lincoln
<option>Lublin
<option>Łada
<option>Mazda
<option>Mercedes
<option>Mitsubishi
<option>Nissan
<option>Opel
<option>Peugeot
<option>Pontiac
<option>Polonez
<option>Porsche
<option>Renault
<option>Rover
<option>Saab
<option>Seat
<option>Skoda
<option>Star
<option>Subaru
<option>Suzuki
<option>Toyota
<option>Volswagen
<option>Volvo
<option>Inne
</SELECT></td><t/tr>';
echo '<tr><td>Model:</td><td><input type=text name=model></td><t/tr>';
echo '<tr><td>Województwo:</td><td><select name="wojewodztwo">
<OPTION>Dolnośląskie
<OPTION>Kujawsko-pomorskie
<OPTION>Lubelskie
<OPTION>Lubuskie
<OPTION>Łódzkie
<OPTION>Małopolskie
<OPTION>Mazowieckie
<OPTION>Opolskie
<OPTION>Podkarpackie
<OPTION>Podlaskie
<OPTION>Pomorskie
<OPTION>Śląskie
<OPTION>Świętokrzyskie
<OPTION>Warmińsko-mazurskie
<OPTION>Wielkopolskie
<OPTION>Zachodnio-pomorskie
</SELECT></td><t/tr>';
echo '<tr><td colspan=2><input type=submit value=SZUKAJ></td></tr>';
echo '</table></form>';
tworz_stopke_html();
?>


oraz skrypt


<?php
session_start();
if (isset($_SESSION['zalogowany']))
{
echo 'Zalogowano jako '.($_SESSION['zalogowany']).'.';
echo '<br />';
require_once('funkcje.php');
tworz_naglowek_html('');
}
else
{
// nie jest zalogowany

echo 'Brak zalogowania.<br />';
include("logowanie_form.php");

exit;
}


$user = "xxxx";
$password = "xxxxx";
$db = "xxxxx";
$server = "localhost";

$link = mysql_connect ($server, $user, $password);
if (! $link)
{
die ("Couldn't connect to mySQL server");
}
if (!mysql_select_db ($db, $link) )
{
die ("Coldn't open $db: ".mysql_error() );
}
// utworzenie krótkich nazw zmiennych
$marka=$_POST['marka'];
$model=$_POST['model'];
$wojewodztwo=$_POST['wojewodztwo'];
# #sprawdzamy czy istnieje zmienna odpowiadająca za wybór strony, jeśli nie ustawiamy na 1
if(!isset($_GET['s'])) $_GET['s']=1;
#
# #definiujemy ile rekordów ma być prezentowanych na stronie
$do=1;
#

# #wybieramy rekordy z bazy oraz je zliczamy
$q=mysql_query("SELECT * FROM auto WHERE marka='$marka' and model='$model' and wojewodztwo='$wojewodztwo'");
$qc=mysql_num_rows($q);
echo 'znaleziono '.$qc;
#
# #sprawdzamy ilość potrzebnych stron
$stron=ceil($qc/$do);
echo'stron'.$stron;
#
# #jelśi wyjdzie więcej niż jedna strona modyfikujemy zapytanie do bazy oraz ustalamy od którego elementu pobieramy dane
if ($stron>=1) {
$od=($_GET['s']*$do)-$do;
}
$q=mysql_query("SELECT * FROM auto WHERE marka='$marka' and model='$model' and wojewodztwo='$wojewodztwo' LIMIT $od, $do");

$ile=mysql_num_rows ($q);
echo 'ile'.$ile.'<br>';
for ($a=0; $a <$ile; $a++)
{
$wiersz =mysql_fetch_array ($q);
echo '<p><strong> Tytuł: ';
echo ($wiersz['tytul']);
echo '</strong><br />Miejscowość: ';
echo ($wiersz['miejscowosc']);
echo '<br />Województwo: ';
echo ($wiersz['wojewodztwo']);
echo '<br />Kod: ';
echo ($wiersz['kod']);
echo '<br />Cena: ';
echo ($wiersz['cena']);
echo '<br />Data dodania: ';
echo ($wiersz['data_dodania']);
echo '<br />Dodający: ';
echo ($wiersz['uzytkownik']);
echo '<br />Model: ';
echo ($wiersz['model']);
echo '<br />Marka: ';
echo ($wiersz['marka']);
echo '<br />Rocznik: ';
echo ($wiersz['rocznik']);
echo '<br />Napęd: ';
echo ($wiersz['naped']);
echo '<br />Skrzynia: ';
echo ($wiersz['skrzynia']);
echo '<br />Stan: ';
echo ($wiersz['stan']);
echo '<br />Drzwi: ';
echo ($wiersz['drzwi']);
echo '<br />Pojemność: ';
echo ($wiersz['pojemnosc']);
echo '<br />Kolor: ';
echo ($wiersz['kolor']);
echo '<br />Przegieg: ';
echo ($wiersz['przebieg']);
echo '<br />Opis: ';
echo ($wiersz['opis']);
echo '</p>';
}

# ##włączamy nawigację jeśli ilość stron jest wieksza od 1 oraz podświetlamy aktualnie wybraną stronę odpowiednią klasą (tutaj o nazwie "aktywna" a pozostałe jako "nieaktywna")
if ($stron>1) {
for($i=1;$i<=$stron;$i++) echo '<span class="'.($_GET['s']!=$i?'nieaktywna':'aktywna').'"><a href="?s='.$i.'">'.$i.'</a></span> ';
}

tworz_stopke_html();
?>

PS. Proszę tylko o podpowiedz lub nakierowanie na błąd, a nie na odpowiedzi typu "to już było" bo przeszukałem forum lub "skorzystaj z google.pl"

Z góry dzieki
nospor
uzywaj bbcode!

http://nospor.pl/formularz-i-stronicowanie...-stanu-n26.html
wacek800
Dzięki za link, szybko przerobiłem go do moich potrzeb, ale i tak mi nie działa.
nospor
Cytat
le i tak mi nie działa.

no i czego od nas oczekujesz po tak wyczerupujacym opisie bledu?

Moze pokaz kod po przerobkach, tym razem uzyb bbcode i nie umieszczaj takiej masy zbednego kodu, jak ten:
<option>Daewoo
<option>Daihatsu
<option>Dodge
<option>Ferrari
<option>Fiat
<option>Ford
<option>Honda
<option>Hyundai
<option>Isuzu
<option>Iveco
<option>Jaguar
<option>Jeep
<option>Jelcz
<option>Kia
<option>Lamborghini
<option>Lancia
<option>Lexus
<option>Li

i masa innego
wacek800
Oto kod
<?php
session_start();
$user = "root";
$password = "vertrigo";
$db = "pojazdy";
$server = "localhost";

$link = mysql_connect ($server, $user, $password);
if (! $link)
{
die ("Couldn't connect to mySQL server");
}
if (!mysql_select_db ($db, $link) )
{
die ("Coldn't open $db: ".mysql_error() );
}

if (!empty($_POST['oursubmit'])){
//gdy wysłano formularz (kliknięto przycisk "oursubmit")
//zapisz jego stan w sesji

$_SESSION['form'] = array(
'marka' => $_POST['marka'],
'model' => $_POST['model']
);
echo $marka;
echo $model;
}

//niezależnie, czy wysłano formularz, czy nie,
//pobierz jego stan z sesji
$formData = array(
'marka' => !isset($_SESSION['form']) ? null : $_SESSION['form']['marka'],
'model' => !isset($_SESSION['form']) ? null : $_SESSION['form']['model'],
);
?>
<form method="post">
<label>marka</label><input name="marka" value="<?php echo $formData['marka'];?>"/><br />
<label>model</label><input name="model" value="<?php echo$formData['model'];?>"/><br />
<input type="submit" name="oursubmit" value="Szukaj" />
</form>
<?php
//a tu możemy korzystać z danych formularza zapisanych w $formData
# #sprawdzamy czy istnieje zmienna odpowiadająca za wybór strony, jeśli nie ustawiamy na 1
if(!isset($_GET['s'])) $_GET['s']=1;
#
# #definiujemy ile rekordów ma być prezentowanych na stronie
$do=1;
#

# #wybieramy rekordy z bazy oraz je zliczamy
$q=mysql_query("SELECT * FROM auto WHERE marka='$marka' and model='$model'");
$qc=mysql_num_rows($q);
echo 'znaleziono '.$qc;
#
# #sprawdzamy ilość potrzebnych stron
$stron=ceil($qc/$do);
echo'stron'.$stron;
#
# #jelśi wyjdzie więcej niż jedna strona modyfikujemy zapytanie do bazy oraz ustalamy od którego elementu pobieramy dane
if ($stron>=1) {
$od=($_GET['s']*$do)-$do;
}
$q=mysql_query("SELECT * FROM auto WHERE marka='$marka' and model='$model' LIMIT $od, $do");

$ile=mysql_num_rows ($q);
echo 'ile'.$ile.'<br>';
for ($a=0; $a <$ile; $a++)
{
$wiersz =mysql_fetch_array ($q);
echo '<p><strong> Tytuł: ';
echo ($wiersz['tytul']);
itd...
}

# ##włączamy nawigację jeśli ilość stron jest wieksza od 1 oraz podświetlamy aktualnie wybraną stronę odpowiednią klasą (tutaj o nazwie "aktywna" a pozostałe jako "nieaktywna")
if ($stron>1) {
for($i=1;$i<=$stron;$i++) echo '<span class="'.($_GET['s']!=$i?'nieaktywna':'aktywna').'"><a href="?s='.$i.'">'.$i.'</a></span> ';
}

?>
Ps. nie ide na łatwiznę, jak bym sobie sam poradził do by mnie tu napewno nie było, ale od kilku dni się z tym już męczę i nie wiem co robię ŻLE.....
nospor
prosilem grzecznie raz:
Cytat
uzywaj bbcode!


prosilem grzecznie drugi raz:
Cytat
Moze pokaz kod po przerobkach, tym razem uzyj bbcode


Trzeci raz prosic nie bede.

Jak juz bedziesz gotowy na spelnienie moich prosb, zapraszam na PW smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.