Autor Zpráva
pe1
Profil *
Chcel by som sa poradiť ako na podobné vyhľadávanie. Proste mám 5 <option>, z ktorých každé obsahuje iné kritérium. Ako v php urobiť toto vyhľadávanie, alebo mi aspoň naznačte, ako na to. Nejako tak, že výsledok prvého výberu vložiť do premennej a ten následne bude filtrovaný z druhého option atď? ............... Ďakujem
WertriK
Profil *
Zalezi v cem mate data, pokud v db, je to proste pokud v souborech tak to zalezi jak to tridite.

Napr;
Hledat <input type="text" name="text"> v [<select name="z"><option value="clanky">clancich</option>, <option>atp.</option>...]

$z = $_POST["z"];
$text = $_POST["text"];

$query = mysql_query("SELECT * FROM ".$z." WHERE neco LIKE '".$text."' ");
pe1
Profil *
Údaje sú v MySQL. Tabuľka so stĺpcami kraj, mesto, lokalita. Chcem aby boli napr. tri <option> a doplním že jednotlivé kritéria sú v <select> (kraj, mesto, lokalita). To som zabudol napísať :-o. Ďakujem
pe1
Profil *
Nikto mi s tým nevie helfnúť?
WertriK
Profil *
Takze ty chces vypsat z mysql data a udelat z toho <option> ?
Ze vypises napr. sloupec kraj;

<select name="kraj">
<option value="1">Jihomoravsky</option>
<option value="2">n2</option>
<option value="3">n3</option>
..
</select>

Potom vypises sloupec mesto;

<select name="mesto">
<option value="1">Mikulov</option>
<option value="2">n2</option>
<option value="3">n3</option>
..
</select>

Je to co chces ?
pe1
Profil *
ako doplním select, aby po zadaní napr. dvoch hodnot nevypísalo obydve ale naozaj len výber v tomto prípade napr. mesto s hodnotou 1 a kraj s hodnotou 2 ???????????????????????

select * from prehlad where (kraj like '" . $_POST["kraj"] . "') čo tu doplniť aby to fungovalo (mesto like '" . $_POST["mesto"] . "') order by datum desc
pe1
Profil *
Ak bude niekto o niečom vedieť, tak dajte prosím vedieť.
Retal
Profil
Vůbec mi není jasné, čeho chceš docílit a kde je problém.
pe1
Profil *
ide mi o niečo takéto

http://www.reality.sk/DetailSearch.aspx

proste 5 <options>, ktorými by som chcel vybrať údaje z db MySQL a zobraziť ich.

Dík
pe1
Profil *
Ešte raz a sorry.

http://www.reality.sk/DetailSearch.aspx
Retal
Profil
Aha. V tom případě
čo tu doplniť aby to fungovalo = AND
:)
Ale rozhodně nedoporučuju vkládat proměnné z POSTu neošetřené do db-dotazu.
pe1
Profil *
$sel=mysql_query("SELECT * FROM $tabulka WHERE (kategoria LIKE '". $_POST["kategoria"] ."') AND (nehnutelnost LIKE '". $_POST["nehnutelnost"] ."') AND (mesto LIKE '". $_POST["mesto"] ."') ORDER BY id DESC");

žiadny výstup :-(.
pe1
Profil *
Asi som to zle vysvetlil. Kazdy inzerat ma hodnotu "kategoria", "nehnutelnost", "mesto". Potrebujem aby:

pre vyber z kategorie bude vystup napr. "predaj"
pre vyber z nehnutelnosti bude napr. "byt", ktory uz ale nemusi byt kategorie "predaj", ale "kúpa".
Pri takomto zadaní potrebujem aby sa zobrazil výstup vyfiltrovaný nie oba.
Retal
Profil
V tom případě OR místo AND. :)
pe1
Profil *
ne nie je to to čo potrebujem.

jednoducho ešte raz:

inzerat 1: kategoria (predam), nehnutelnost(byt), mesto(Žilina)
inzerat 2: kategoria (kupim), nehnutelnost(byt), mesto(Banská Bystrica)
inzerat 3: kategoria (vymenim), nehnutelnost(dom), mesto(Žilina)

ked vyberiem <option>Žilina tak vypíše inzeráty podľa kategórie "mesto" (to funguje OK)
ako náhle vyberiem <option>Žilina a <option>byt tak potrebujem, aby to vypisalo len inzerat 1 a pod., nie aj inzerat 2 a 3 kde je hodnota nehnutelnosti (byt) a mesto (Žilina)

Asi to bude zložitejšie. Potrebujem len nakopnúť, akým spôsobom to urobiť.
Anonymní
Profil *
$sel=mysql_query("SELECT * FROM $tabulka WHERE (kategoria LIKE '". $_POST["kategoria"] ."') AND (nehnutelnost LIKE '". $_POST["nehnutelnost"] ."') AND (mesto LIKE '". $_POST["mesto"] ."') ORDER BY id DESC");

žiadny výstup :-(.



Já myslím že to máš dobře, pokud je tedy vše uloženo v jedné tabulce a správně nastaveny hodnoty. Problém je, že musí platit všechny podmínky zároveň, takže pokud neexisuje kombinace předaná přes vybrané seznamy, nezobrazí se žádný výstup.
Pokud máš možnost vybrat v seznamu "nic" tak se taková kombinace asi nenajde nikdy:-D
Ale takhle těžko říct kde vězí problém...
krteczek
Profil
doporučuji v tabulce vytvořit duplicitní sloupečky k položkám které získáváš z $_POST, takže máš například sloupec kraj a v něm názvy krajů a k němu vytvoř sloupec md5_kraj a ulož do něj md5 hash názvu kraje. select potom můžeš dělat následovně:
select * from tabulka where hash_kraj='".md5($_POST['kraj'])."' ";

Ted k tomu co ty vlastně potřebuješ:-)
máš formulář a podle toho jak je vyplněn potřebuješ sestavit dotaz. řešil bych to nějak takhle:


$kategorie=0;
$a=0;
$dotaz="select * from tabulka where";//nejprve základní dotaz
if((!empty($_POST['kategorie']))and(!empty($_POST['mesto']))
{
switch($_POST['kategorie'])
{
case 'prodej';
$kategorie=1;
break;
case 'koupě';
$kategorie=2;
break;
case 'výměna';
$kategorie=3;
break;
default;
$kategorie=1;
break;
}
$dotaz.=" kategorie=".$kategorie." ";
$mesto=array(1 => "Bratislava","Žilina","Košice");//další města si přidej a odděl čárkou, spíš doporučuji zvlášť tabulku s městy
foreach($mesto as $cislo => $meno)
{
if($_POST['mesto']==$meno)
{
$dotaz.=" and mesto=".$cislo." ";
$a=1;
break;
}
}
if($a==0)
{
$dotaz.=" and mesto=1 ";
}
//a tak dále sestavuješ dotaz
}

krteczek
pe1
Profil *
Díky krteczek za namahu, ale trochu tomu nerozumiem. Ak by sa ti chcelo hodiť nejake vysvetlenie tak budem vďačný.
pe1
Profil *
Vedel by som sa odvdacit aj financne, ak ten script bude funkcny.
krteczek
Profil
pe1: icq 337913080 ale budu tu tak za dve hodky, musim do mesta
krteczek
Toto téma je uzamčeno. Odpověď nelze zaslat.

0