![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
znalazlem kod do stronicowania wynikow zapytania sql. Lekko go przerobilem dla swoich potrzeb i dziala pieknie do mementu do puki nie uzyje zmiennej w zapytaniu SQL. Jesli w zapytaniu wstawie zmienna to wyswietlona zostanie tylko pierwsza strona, a pozostale beda puste.
Tu jest fragment takiego feralnego zapytania wyciagnietego ze skryp: [sql:1:21cc625241] select tel1, impuls, impuls, operator, data from main where io=7 and operator in(501,505,509) and data = '".$_POST['data']."' LIMIT $limit,20; [/sql:1:21cc625241] jesli w miejsce wyboldowanej zmiennej '".$_POST['data']."' wpisze stala wartosc np: 031127 to wszystko bedzie ok, kazda kolejna strona wyswietla wyniki tu zamieszczam caly kod do stronicowania. Moze komus wpadnie jakis fajny pomysl jak to usprawnic. [php:1:21cc625241]<?php <? $pol = mysql_connect('localhost', 'root','666') or die("serwerek dead"); mysql_select_db("bill") or die("Nie mozna sie polaczyc z baza!"); $page = $_REQUEST['page']; $query = $_POST['query']; // check to see if $page is set if (!$page) { $page = 1; } // Change $query to a request super global after the first page. if($page > 1){ //$query = $_REQUEST['query']; } //set up some limits $limit = $page * 20; $limit = $limit - 20; //get the count from the database table $sql_num = mysql_query("SELECT * FROM main where io =7"); $num = mysql_num_rows($sql_num); // query your database for the final results $sql_results = mysql_query("select tel1, impuls, impuls, operator, data from main where io=7 and operator in(501,505,509) and data = '".$_POST['data']."' LIMIT $limit,20"); if($num < 20){ $through = $num; } else { $through = $limit + 20; } if ($through > $num){ $through = $total; } if($page > 1){ $from = $limit +1; } else { $from = $limit; } if($from == 0){ $from = $from +1; } echo "Rezultat wyszukiwania:"; echo "<p align="right">"; if ($page > 1) { echo "<a href="$PHP_SELF?query=$query&page=".($page -1).""><< poprzednia</a> "; } if (($num > 20) && (($limit + 20) < $num)) { echo "<a href="$PHP_SELF?query=$query&page=".($page +1)."">następna >></a>"; } //Wyswietlanie print('<table>'); print("<TABLE border=1 CELLSPACING=1 WIDTH=70% ALIGN=center>"); { $j=1; while(list($i,$l, $ll)=mysql_fetch_row($sql_results)) { print("<tr>"); print("<td>"); print($j); print("</td>"); print("<td>"); print("<b>Numer telefonu: </b>"); print($i); print("</td>"); print("<td>"); print("<b>Ilość impulsów: </b>"); print($l); print("</td>"); print("<td>"); print("<b>koszt: </b>"); print("<td>"); print($ll); print("</td>"); $j++; } } print('</table>'); if ($page > 1) { echo "<a href="$PHP_SELF?query=$query&page=".($page -1).""><< poprzednia</a> "; } if (($num > 20) && (($limit + 20) < $num)) { echo "<a href="$PHP_SELF?query=$query&page=".($page +1)."">następna >></a>"; } ?>[/php:1:21cc625241] |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) ![]() ![]() |
[php:1:8db207c0b7]<?php
$sql_num = mysql_query("SELECT * FROM main where io =7"); // ... $sql_results = mysql_query("select tel1, impuls, impuls, operator, data from main where io=7 and operator in(501,505,509) and data = '".$_POST['data']."' LIMIT $limit,20"); ?>[/php:1:8db207c0b7] Warunki w obu tych zapytaniach muszą być takie same. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
ee...to nie to
![]() To wyglada tak jak by ten skrypt za kazdym razem po kliknieciu w "nastepna strona" odpytywal baze danych ale gubil przy tym wartosc zmiennaj '".$_POST['data']."' Tak mi sie wydaje...jesli tak to co by tu mozna bylo zrobic zeby ta zmienna "przyszpilic" na stale ? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) ![]() ![]() |
Wrzuć ją do sesji. I popraw to co podałem Ci w poprzednim poście, bo przy takich zapytaniach to owszem będzie skrypt działał, z tym że źle.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
czy mozesz mnie troche nakierowac? Bo wlasnie przeczytalem sobie tutaj http://pl.php.net/manual/pl/ref.session.php o sesjach i o ile sam tekst brzmi calkiem sensownie to w zaden sposob nie potrafie sobie wyobrazic jak zastosowac podany tam przyklad.
Dodalem na poczatek skryptu stronicowania to: [php:1:bb1c4ad6f7]<?php session_start(); if (isset($HTTP_SESSION_VARS['count'])) { $HTTP_SESSION_VARS['count']++; } else { $HTTP_SESSION_VARS['count'] = 0; } ?>[/php:1:bb1c4ad6f7] Nie pomoglo, ale jesli wcisne strzalke w tyl ( w przegladarce ) juz po odpaleniu skryptu, to napisze mi, ze sesja wygasla. Sadze ze jestm blisko tylko faktem jest, ze jeszcze tego nie ogarniam. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
prosze pomozcie.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
daj spokój z count. poczytaj dokładnie o sesjach. zarejestruj zmienną data w sesji, czyli np.:
[php:1:d5fa028451]<?php session_start(); if (isset($_POST['data'])){ $_SESSION['data'] = $_POST['data']; } if (isset($_SESSION['data'])){ $_POST['data'] = $_SESSION['data']; } ?>[/php:1:d5fa028451] dokładnie nie wnikałem w skrypt, ale chyba o to chodzi...? -------------------- audaces fortuna iuvat!
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
hej!!! dzienx pomoglo :]
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
No dobra wiec caly skrypt razem z obsluga sesji wyglada następujaco:
( pewnie wielu z was powie, że jest to napisane nie profesjonalnie i możnaby bylo napisać to lepiej i prościej... i zgodze się z tą opinią, ale puki co poniższy kod działa ![]() [STRONICOWANIE WYSWIETLANYCH DANYCH + ZMIENNA W ZAPYTANIU SQL] [php:1:b11d115ed0]<?php <? //polaczenie do bazy $pol = mysql_connect('localhost', 'root','666') or die("serwerek dead"); mysql_select_db("bill") or die("Nie mozna sie polaczyc z baza!"); session_start(); if (isset($_POST['data'])){ $_SESSION['data'] = $_POST['data']; } if (isset($_SESSION['data'])){ $_POST['data'] = $_SESSION['data']; } $page = $_REQUEST['page']; $query = $_POST['query']; // check to see if $page is set if (!$page) { $page = 1; } // Change $query to a request super global after the first page. if($page > 1){ //$query = $_REQUEST['query']; } //set up some limits $limit = $page * 20; $limit = $limit - 20; //get the count from the database table $sql_num = mysql_query("select tel1, impuls, impuls, operator, data from main where io=7 and operator in(501,505,509)"); $num = mysql_num_rows($sql_num); //data ='".$data."' //query your database for the final results $sql_results = mysql_query("select tel1, impuls, impuls, operator, data from main where io=7 and operator in(501,505,509) and data = '".$_SESSION['data']."' LIMIT $limit,20"); if($num < 20){ $through = $num; } else { $through = $limit + 20; } if ($through > $num){ $through = $total; } if($page > 1){ $from = $limit +1; } else { $from = $limit; } if($from == 0){ $from = $from +1; } echo "Rezultat wyszukiwania:"; echo "<p align="right">"; if ($page > 1) { echo "<a href="$PHP_SELF?data=$data?query=$query&page=".($page -1).""><< poprzednia</a> "; } if (($num > 20) && (($limit + 20) < $num)) { echo "<a href="$PHP_SELF?data=$data?query=$query&page=".($page +1)."">następna >></a>"; } //Wyswietlanie print('<table>'); print("<TABLE border=1 CELLSPACING=1 WIDTH=70% ALIGN=center>"); { $j=1; while(list($i,$l, $ll)=mysql_fetch_row($sql_results)) { print("<tr>"); print("<td>"); print($j); print("</td>"); print("<td>"); print("<b>Numer telefonu: </b>"); print($i); print("</td>"); print("<td>"); print("<b>Ilość impulsów: </b>"); print($l); print("</td>"); print("<td>"); print("<b>koszt: </b>"); print("<td>"); print($ll); print("</td>"); $j++; } } print('</table>'); if ($page > 1) { echo "<a href="$PHP_SELF?data=$data?query=$query&page=".($page -1).""><< poprzednia</a> "; } if (($num > 20) && (($limit + 20) < $num)) { echo "<a href="$PHP_SELF?data=$data?&query=$query&page=".($page +1)."">następna >></a>"; } ?>[/php:1:b11d115ed0] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:02 |