ďťż

Ładny brzuch

Mam drobny problem z wyszukiwarką napisaną w php i mysql, której to kod został podany w numerze Eksperta z sierpnia tego roku... Ehh.. źle mówie... Sam kod jest w porządku i działa bez zarzutu, ale moja baza danych jest dość pokaźna i chciałbym żeby wyniki wyszukiwania pokazywały się na przykład po 10 pozycji... Chciałem więc zastosować funkcję LIMIT w tym kodzie. Wtedy jednak strona z nie chce wyświetlic mi wyników, bo nie łączy się z bazą... Myśle że dobrze wstawiłem tę funkcję - w pliku wyswietl_szukaj.php w linijce 4 - ta linijka ma wtedy postać:
$zapytanie="select * from tabela limit 0,10";  
wtedy jednak nic mi nie działa, a jeśli usune funkcję limit - wyświetla wszystkie szukane dane... Szukałem już na forum ale odpowiedzi na pytanie jak zrobic by to wszystko działało z kodem takim jak był w Ekspercie nie znalazłem odpowiedzi... Bardzo prosze więc o jakąś radę...

~webik



z twojego opisu wyglada na to ze twoja wersja mysql nie rozumie skladni z limit... moze uzywasz jakiejs starej albo cos? ale jest to troche dziwne...
najlepiej zrob tak:
zaraz po linii z mysql_query wstaw takie cos:
echo mysql_errno() . ": " . mysql_error() . "n";
i zobacz co ci sie wyswietli na stronie... powinienes dostac jakis blad moze to cie naprowadzi na rozwiazanie twojego problemu.
btw jaka masz wersje mysql/php?

pozdrawiam
pepsi^no1

zajrzalem do tego magicznego skryptu [wyswietl_szukaj.php] ;) i wiem gdzie jest blad ;]
w liniach z tymi ifami dodaje sie warunek wyszukiwania a w linii 15? mamy $zapytanie = $zapytanie." order by tytul"; ktore dodaje do zapytania order by...
czyli twoje zapytanie wyglada finalnie:
select * from tabela limit 0,10 where costam like 'costam' order by tytul;
a takiego zapytania mysql nie lyknie ;) bo limit musi byc na koncu wiec najlepiej w linii 15 zmien sobie na:
$zapytanie = $zapytanie." order by tytul limit 0,10";

pozdrawiam
pepsi^no1

Tutaj masz kod będący efektem ostatnich 3 tygodni zmagania sie z podobnym problemem, oparty na tym samym skrypcie - zmienne z zewnętrznego formularza:
$sql="select * from dane_komputerow where $kryterium like '%$wartosc%'";   $sql=mysql_query($sql); mysql_error();     $all=mysql_num_rows($sql); mysql_error();     echo ("<div class='wynik'>Znaleziono wpisów: ".$all."</div>"); $ile=1; $stron=ceil($all/$ile); if(isset($_POST['wartosc'])) $wartosc=$_POST['wartosc']; if(isset($_POST['kryterium'])) $kryterium=$_POST['kryterium']; if(!isset($p)) $p=0;             if($p>0) echo "<a HREF=ind.php?strona=sz.php&p=".($p-1)."&wartosc=$wartosc&kryterium=$kryterium><< WSTECZ </A> Strona ".($p+1);   else echo "<font color='black'><< WSTECZ</FONT> Strona ".($p+1); if($p<($stron-1)) echo "<a HREF=ind.php?strona=sz.php&p=".($p+1)."&wartosc=$wartosc&kryterium=$kryterium> DALEJ >></A>"; ELSE ECHO "<FONT COLOR='black'> DALEJ >></FONT>"; $sql="select * from dane_komputerow where $kryterium like '%$wartosc%' limit ".($p*$ile).", ".$ile; $sql=mysql_query($sql);   mysql_error(); while($wiersz=mysql_fetch_array($sql)){ mysql_error(); echo "<br><br>"; echo "<table width='80%' bgcolor='aliceblue'>"; echo "<tr><th width='30%'>Numer seryjny:</Th><td class='wynik'>".$wiersz["serial"]."</td></TR>"; //itd.

a tutaj link do tego tematu na forum. Mam nadzieję, że ci to oszczędzi tych 3 tygodni.
http://www.ks-eksper...?TOPIC_ID=18642
co nie jest wyjaśnione w tym poście na pewno jest pod tym linkiem. A jak czegoś nie zaczaisz to pisz.



Dzieki za wszyskie odpowiedzi... Chodziło mi właśnie o cos takiego co pokazał tu pepsi... Tobie frogy tez dziękuję, ale raczej tego kodu nie wykorzystam, bo musiał bym zmieniać zmienne w całym skrypcie... Ale faktem jest że przydałoby się miec możliwość przeskakiwania między stronami ze znalezionymi rekordami, przy czym wolałbym żeby kod wkomponował sie w to co już mam:

<? include_once("funkcje.php"); echo "<center><font size=2 face=verdana>Oto płyty spełniające kryterium wyszukiwania:</font></center>"; $zapytanie = "select * from soundtrack"; If ($tytul<>""||$rezyser<>""||$aktorzy<>""||$rok_wydania<>""||$gatunekID< >""||$nosnikID<>""){  $zapytanie=$zapytanie." where";  if ($tytul<>"") $zapytanie=$zapytanie." tytul like '%$tytul%' and";  if ($rezyser<>"") $zapytanie=$zapytanie." rezyser like '%$rezyser%' and";  if ($autor<>"") $zapytanie=$zapytanie." autor like '%$autor%' and";  if ($rok_wydania<>"") $zapytanie=$zapytanie." rok_wydania='$rok_wydania' and";  if ($gatunekID<>"") $zapytanie=$zapytanie." gatunekID='$gatunekID' and";  $zapytanie = substr($zapytanie, 0, -3); } $zapytanie = $zapytanie." order by tytul limit 0,10"; wyswietl_sound($zapytanie); ?>

Czy i w jaki sposob można zrobic takie linki do następnej porcji znalezionych rekordów nie naruszając zbytnio tego kodu?

~webik

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •