Vyhledat v mysql pomocí dvou parametrů
16 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Poradí někdo ? potřebuji z databáze vyhledat zaznamy pomocí dvou parametru , tj příklad pokud obsahuje K.Vary a Prace aby se zobrazilo jen to co obsahuje tyto dvě slova vubec nevim jak na to mam tento script: $id = $_POST["id"]; $zarizeni = $_POST["zarizeni"]; $strpopis = $_POST["strpopis"]; $kategorie = $_POST["kategorie"]; $oblast = $_POST["oblast"]; $foto = $_POST["foto"]; $searchstring = $_POST["searchstring"]; $searchtype = $_POST["searchtype"]; if ($searchstring) { $sql="SELECT * FROM $table_kv WHERE $searchtype LIKE '%$searchstring%' ORDER BY zarizeni ASC"; $result = mysql_query($sql); $resultsnumber = mysql_numrows($result); echo "<p>Nalezeno $resultsnumber záznamů.</p>"; echo "<table>"; $alternate = "2"; while ($myrow = mysql_fetch_array($result)) { $zarizeni = $myrow["zarizeni"]; $id = $myrow["id"]; $strpopis = $myrow["strpopis"]; $kategorie = $myrow["kategorie"]; $oblast = $myrow["oblast"]; $foto1 = $myrow["foto1"]; $hvezdy = $myrow["hvezdy"]; if ($alternate == "1") { $color = "#ffffff"; $alternate = "2"; } else { $color = "#efefef"; $alternate = "1"; } echo "<tr style='background-color: $color'>"; echo "<th scope='col'>$zarizeni</th>"; echo "<th scope='col'>Kategorie: $kategorie</th>"; echo "</tr>"; echo "<tr style='background-color: $color'>"; echo "<td><img src='foto/$foto1' height=160 width=213></td>"; echo "<td>Popis: $strpopis</td>"; echo "</tr>"; echo "<tr style='background-color: $color'>"; echo "<td>$oblast</td>"; echo "<td><a href='view.php?id=$id'>Vice informaci</a></td>"; echo "</tr>"; } echo "</tr></table>"; echo "<p><a href=\"$PHP_SELF\">Hledat znovu</a></p>"; } else { ?> <form method="post" action="<? $PHP_SELF ?>"> <table style="width: 100%" cellspacing="0"> <tr> <td><h1>Vyhledávání</h1></td> <td><b>Zvolte podle čeho vyhledávat: </b></td> </tr> <tr> <td style="vertical-align: top"> <input type="text" name="searchstring" size="35"/> <select name="searchtype"> <option value="hvezdy">Kategorie</option> <option value="zarizeni">Zarizeni</option> </select> </td> <td> <input type="text" name="searchstring" size="35"/> <select name="searchtype"> <option value="oblast">Oblast</option> <option value="strpopis">Popis</option> </select> </td> </tr> <tr><td><input type="submit" value="Odeslat"/></td> <td> </td></tr> </table> </form>
-
Proč se dáváš takový šílený kód, když chceš znění SQL dotazu? Stačí náznak struktury tabulky a co a jak chceš hledat. Zadání není zcela jasné, ale možná chceš něco takového: SELECT * FROM $table_kv WHERE ($searchtype LIKE '%$searchstring1%') AND ($searchtype LIKE '%$searchstring2%') ORDER BY zarizeni ASC Jinak, je zvláštní dávat názvy tabulky a sloupců do proměnné, ale budiž.
-
nefunguje taky sem to tak už zkoušel....... chci pokud se splní u zaznamu v databázi obě podmínky hledání aby to vypsalo ty vyhovující příklad oblast hvězdy adresa ----------------------------------------------------------------- Karlovy Vary čtyři K přehrade Praha čtyři K ujezdu Brno čtyři Ke skale Karlovy Vary čtyři říční Praha tři u boudy Brno tři K jezu Karlovy Vary tři Zejerova hledam searchstring1= Karlovy Vary a searchstring2= čtyři mělo by to vypsat oblast hvězdy adresa ----------------------------------------------------------------- Karlovy Vary čtyři K přehrade Karlovy Vary čtyři říční .
-
> nefunguje taky sem to tak už zkoušel....... chci pokud se > splní u zaznamu v databázi obě podmínky hledání aby to > vypsalo ty vyhovující > > > příklad > oblast hvězdy > adresa > ----------------------------------------------------------------- > Karlovy Vary čtyři K > přehrade > Praha čtyři > K ujezdu > Brno > čtyři Ke skale > Karlovy Vary čtyři > říční > Praha > tři u boudy > Brno > tři K jezu > Karlovy Vary tři > Zejerova > > hledam searchstring1= Karlovy Vary a searchstring2= čtyři > > mělo by to vypsat > > oblast hvězdy > adresa > ----------------------------------------------------------------- > Karlovy Vary čtyři K > přehrade > Karlovy Vary čtyři > říční > > > . omluva oblast.............. hvězdy.................... adresa ----------------------------------------------------------------- Karlovy Vary...... čtyři..................... K přehrade Praha................ čtyři...................... K ujezdu Brno.................. čtyři..................... Ke skale Karlovy Vary...... čtyři .....................říční Praha................ tři......................... u boudy Brno .................tři........................... K jezu Karlovy Vary .....tři .........................Zejerova vypsat oblast .....................hvězdy....................... adresa ----------------------------------------------------------------- Karlovy Vary ............čtyři ........................K přehrade Karlovy Vary............ čtyři........................ říční
-
SELECT * FROM tabulka WHERE oblast='Karlovy Vary' && hvězdy='čtyři' ?
-
nenji náhodou v SQL AND (místo &&)? nebo jde obojí?
-
no vypadá to stejně jako ten první návrh ........ tak to asi bude chyba v proměných nebo ve formuláři bo mi to nefunguje
-
nevypadá, není tam LIKE ale = && jde taky
-
$searchstring = $_POST["searchstring"]; $searchstring1 = $_POST["searchstring1"]; $searchstring2 = $_POST["searchstring2"]; $searchtype1 = $_POST["searchtype1"]; $searchtype2 = $_POST["searchtype2"]; if ($searchstring) { $sql="SELECT * FROM tabulka WHERE $searchtype1 = '%$searchstring1%' && $searchtype2 = '%$searchstring2%' ORDER BY typ ASC"; ............. <tr> <td style="vertical-align: top"> <input type="text" name="searchstring1" size="15"/> <select name="searchtype1"> <option value="zarizeni">Zarizeni</option> <option value="oblast">Oblast</option> <option value="strpopis">Popis</option> </select> </td> <td> <input type="text" name="searchstring2" size="15"/> <select name="searchtype2"> <option value="hvezdy">Kategorie</option> <option value="strpopis">Popis</option> </select> </td> </tr>
-
tak sem to udělal a stejně to nejede :-(
-
no, však ještě smaž ty procenta... ty k = nepatří
-
tam problem asi nebude , problem bude bych řekl tady ........ if ($searchstring) .......... sem to testoval a zjistil sem že by se tam mělo specifikovat asi to $searchstring1 a $searchstring2 ale jak ...........tak k tomu sem nedošel
-
nevim jak ale už to chodí .................díky panove
-
jak vypadá ten SQL dotaz teď?
-
chodi to tak, jak jsem si predstavoval. Diky
-
hmm, tak dík