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é.

  1. 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>
  2. 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ž.
  3. 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í .
  4. > 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í
  5. SELECT * FROM tabulka WHERE oblast='Karlovy Vary' && hvězdy='čtyři' ?
  6. nenji náhodou v SQL AND (místo &&)? nebo jde obojí?
  7. 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
  8. nevypadá, není tam LIKE ale = && jde taky
  9. $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>
  10. tak sem to udělal a stejně to nejede :-(
  11. no, však ještě smaž ty procenta... ty k = nepatří
  12. 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
  13. nevim jak ale už to chodí .................díky panove
  14. jak vypadá ten SQL dotaz teď?
  15. chodi to tak, jak jsem si predstavoval. Diky
  16. hmm, tak dík

← Zpět na všechna témata