moze troche inaczej (maly opis do skryptu zaprezentowanego przez ikioloak)
zwroc uwage ze zmienna $query wystepuje w ifach i to po lewej stronie znaku rownosci co oznacza ze cosik do niej w tych ifach podstawiamy (konkretnie to podstawiamy wartosci z formularza - pola wyszukiwania jesli cokolwiek w nich bylo) a zapis w stylu
<?php
$query.=
?>
oznacza ze dopisujemy tekst do zmiennej na jej koncu czyli po where

nie wiem tylko czy to zadziala jesli w zadnym polu user nic nie wpisze a nacisnie submit proponowal bym wiec dodac where do zapytania tylko w wypadku jesli w ktores z pol wyszukiwania wstawiono jakis ciag znakow
minimalnie zmieniony skrypt
<?php
$query=\"SELECT * FROM baza\";
if ($_POST['id']!='' or $_POST['nazwa']!='' or $_POST['tytul']!='')
{
$query.=\" WHERE \";
if ($_POST['id']!='')
{
$query.='id = '.$_POST['id'].' ';
if (($_POST['nazwa']!='')||($_POST['tytul'])!='') $query.=' AND';
}
if ($_POST['nazwa']!='')
{
$query.='nazwa=''.$_POST['nazwa'].'' ';
if ($_POST['tytul']!='') $query.=' AND';
}
if ($_POST['tytul']!='') $query.=' tytul=''.$_POST['tytul'].'' ';
}
...
...
?>
mozna tez uzyc isset() do sprawdzenia czy zmienna ma wartosc