Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyszukiwanie - czy to jest trudne??
Forum PHP.pl > Forum > Bazy danych > MySQL
mk.gda
Czy znajde gotowy skrypt php ktory wyszukuje i wyswietla dane z bazy??
Chodzi mi o taki jak na wszystkich stronach z ogloszeniami pracy czyli zadajemy pewne kategorie wyszukiwania (np. miasto) i otrzymujemy tylko rekordy zawierajace szukane miasto.

Chcialbym rozwniez zeby wyniki podzielone byly na strony jezeli jest ich duzo czyli pojawialy sie na dole przyciski 1,2,3 itd. ale nie wiem czy to nie temat na osobny skrypt?

Moze znacie linka do takiego skryptu a moze ktos ma taki gotowy i mi go przesle? to chyba nie jest trudne ja jednak dopiero zaczynam przygode z php i mysql a najlepiej ucze sie z gotowych przykladow. bardzo mi na tym skrypcie zalezy.

Dziekuje i pozdrawiam.
vi-valdi
Spróbuj cos takiego. U mie działa.

formularz.html
Kod
<form method="GET" action="search.php">

<input type="text" name="query">

<select size="1" name="field">

<option value="nazwa">nazwa</option>

<option value="...">...</option>

</select>

<input type="submit" name="ok">

</form>


search.php
[php:1:a789801d02]<?php
require("connect.inc.php");

$poz=10; // ile pozycji na stronie
if(!$pocz) { $pocz = "0"; }
if(!$str) { $str = "1"; }

$sql = "SELECT id, nazwa, ... FROM tabela WHERE $field LIKE '%$query%' ORDER BY $field, id LIMIT $pocz, $poz";
$sql_result = mysql_query($sql) or die("Nie mozna zrealizowac zapytania SQL");
list($ile) = mysql_fetch_row(mysql_db_query("prosper","SELECT count(*) FROM tabela WHERE $field LIKE '%$query%'"));
$row = mysql_num_rows($sql_result);
if ($row != "0") {

print ("<table>");

while ($record = mysql_fetch_array($sql_result)) {
$licznik = $licznik + 1;
$lp = $pocz + $licznik;
?>

<tr>
<td><? echo $lp ?></td>
<td>Nazwa: <? echo $record[nazwa] ?></td>
...
...
<td><a href="details.php?id=<? echo $record[id] ?></td>
</tr>

<?
}
?>

</table>

<?
for($pocz=0; $pocz<$ile; $pocz+=$poz) {
$s=$pocz/$poz+1;
if ($str != $s) {
print (" <a href="search.php?field=$field&query=$query&pocz=$pocz&str=$s">$s</a> "); # to wyswietli linki w postaci 1 2 3 4
} else {
print (" $s ");
}
$sep = ($ile / $poz);
if ($s < $sep) print ("|");
}
} else {
print ("<p>&nbsp;</p><p align="center"><b>Nie znaleziono artykułów spełnij&plusmn;cych podane kryteria.</b></p>");
}

include("disconnect.inc.php");
?>[/php:1:a789801d02]

Przekleiłem na szybko więc nie gwarantuję poprawności działania.
Nie gwarantuje również optymalności kodu.
mk.gda
A jak do tego dorobic przyciski "wstecz" i "dalej"??
kszychu
Chyba jakoś tak, ale nie wiem, czy nie ma tam błędów.
[php:1:407b60e587]<?
if($str > 1) echo <a href="search.php?field=$field&query=$query&pocz=$pocz&str=($str-1)">wstecz</a>";

for($pocz=0; $pocz<$ile; $pocz+=$poz) {
$s=$pocz/$poz+1;
if ($str != $s) {
print (" <a href="search.php?field=$field&query=$query&pocz=$pocz&str=$s">$s</a>"); # to wyswietli linki w postaci 1 2 3 4
} else {
print (" $s ");
}
$sep = ($ile / $poz);
if ($s < $sep) print ("|");
}
if($str < $ile) echo <a href="search.php?field=$field&query=$query&pocz=$pocz&str=($str+1)">dalej</a>";
} else {
print ("<p>&nbsp;</p><p align="center"><b>Nie znaleziono artykułów
spełnij&plusmn;cych podane kryteria.</b></p>");
}

include("disconnect.inc.php");
?> [/php:1:407b60e587]
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.