webmaster, czcionki, szablony, skrypty, kursy: php, html, mysql, webmaster group / SITEQL.net \ skrypty, kursy: html, php, mysql, czcionki, darmowe szablony stron www, grafika, flash i swish, webmaster group, porady php, html i javascript, tworzenie stron www, katalog stron www, forum dla webmastera oraz obszerny download, pliki, za darmo w sieci, wszystko dla ciebie i twojej strony www, zapraszamy | html, php, skrypty, czcionki, webmaster, szablony, javascript, mysql, download, scrypty, www, gif, jpg, kursy, kurs php, kurs, php3, php4, porady, artykuły, darmowe szablony stron www, pliki, skrypty cgi, webmaster group, skrypty php, skrypty javascript
 

Darmowe Pozycjonowanie - www.LiveLink.pl

 
 

Menu


 Porady PHP:

Porcjowanie zapytań w MySQL cz.1

Było już o porcjowaniu zapytań w bazie tekstowej, teraz nadszedł czas na MySql...

W MySql jest to tym łatwiejsze że wszystko odbywa się za pomocą parametru LIMIT podawanego w zapytaniu np:

$zapytanie="SELECT * FROM wyszukiwarka WHERE opis LIKE '%$searchtext%' ORDER by id DESC" LIMIT 0,10;

takie zapytanie pobierze dane od rekordu 0 do 10....
tak więc cały problem to przekazanie tych parametrów do następnej strony dodanie odpowiedniej liczby i wyświetlenie...
zatem spróbujmy to zrobić na przykładzie prostej wyszukiwarki:

<?php

if(($s=="") && ($e=="")){
$s="0";
//ustawiamy limit na 20 pozycji na stronie
$e="20";
}
//łączymy się z bazą
$conn = mysql_connect("localhost","user","password");
mysql_select_db("MOJABAZA");

$zapytanie="SELECT * FROM wyszukiwarka WHERE opis LIKE '%$searchtext%' ORDER by id DESC" LIMIT $s,$e;
$wynik=mysql_query($zapytanie);
echo"Wyniki wyszukiwania dla zapytania: <b>$searchtext</b><br><br>";

//teraz zliczymy sobie ilość rekordów, będzie nam to potrzebne aby wiedzieć czy
//czy utworzyć link "następna strona" jeśli będzie to potrzebne
list($ile)=mysql_fetch_row(mysql_db_query("MOJABAZA","SELECT count(*) FROM wyszukiwarka WHERE opis LIKE '%$w%'"));

while($rekord=mysql_fetch_array($wynik)){
echo"
<table border=\"1\" cellpadding=\"2\" width=\"100%\">
<tr><td bgcolor=\"#80D6FF\">
<a href=\"".$rekord['adres']."\">".$rekord['tytul']."</a>
</td></tr><tr><td>
".$rekord['opis']."
</td></tr></table>";
}

//generujemy linki do następnej strony jeśli rekordów jest więcej niż tych wyświetlonych
echo"<center>";
if($ile <= $e){
echo"<img src=\"img/bc.jpg\" border=\"0\"> <a href=\"javascript:history.back();\">poprzednia strona</a>";
}
if(($ile <= $e) && ($ile > $e)){
echo" | ";
}
if($ile > $e){
echo"<a href=\"$url/show_l.phtml?s=$e&e=".$b=$e+$e."\">następna strona</a> <img src=\"img/nx.jpg\" border=\"0\">";
}
echo"</center>";
?>

przekazując cyferki w linku (<a href=\"show_l.phtml?s=$e&e=".$b=$e+$e."\">)
powodujemy że wartość LIMIT $s,$e wciąż jest zwiększana np.

przy pierwszym wyświetleniu strony ten link będzie wyglądał tak:
<a href=\"show_l.phtml?s=20&e=40\">

tak więc przy pierwszym wyświetleniu dostaniemy pozycje od 0 do 20 a w linku przekażemy informacje o tym że na nastepnej stronie mają zostać wyświetlone pozycje od 20 do 40. To oczywiście przykład najprostszy z możliwych... chodzi tylko o to żeby zrozumieć zasadę działania takiego porcjowania.... w następnej części opiszę jak zrobić porcjowanie na zasadzie linków na stronie w stylu [1] [2] [3] [4] [5] tak jak to ma miejsce na przykład na Google. ...na razie polecam poćwiczenie na prostszym przykładzie, a ten powinien być idealny.

dodał: Bastek

increase wyjazdy firmowe motywacyjne Opony Katalog Stron Internetowych meble krzesła biurowe szafy