Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP SQL WHERE LIKE

faaraot [11.03.2011 11:53:00]

#

En saa pelaamaan. Väärin koodattu, mutta jos kehtais joku jelppiä miten ton saa pelaan. Eli ideana on kun haetaan vaikka nimellä matti niin hakee nimet jossa matti esiintyy. Vaikka Matti-meikäläinen.

$nimi = $_GET["nimi"];

$sql="SELECT * FROM asiakkaat WHERE nimi LIKE = '%$nimi%'";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result)) {
$nimi2 = $row['nimi'];
echo $nimi2;

}

Lebe80 [11.03.2011 11:56:42]

#

Poista sql-kyselystä tuo ylimääräinen = -merkki LIKEn perästä.

Eli
$sql="SELECT * FROM asiakkaat WHERE nimi LIKE '%$nimi%'";

Lisäksi tuo $nimi -muuttuja pitäisi myös siivota "haitallisista" merkeistä ja escapoida kyselyssä.

faaraot [11.03.2011 12:02:42]

#

Kyllä sitä on sokea :) tottakai se on noin. Thanx!

The Alchemist [11.03.2011 16:35:43]

#

Vaivautukaahan nyt sen verran itsekin yrittämään, että suoritatte saman kyselyn tietokannan puolella (esim. komentorivisovelmalla 'mysql')...

Grez [11.03.2011 18:01:42]

#

Tai sitten käyttää jotain kunnollista SQL-työkalua, joka näyttää suoraan virheet:
http://grez.info/putka/sqlspellcheck.png

Tuossa huomionarvoisaa että Liken jälkeisestä = näytetään tuollaiset punaiset aaltoviivat. Sitten kun menee hiirellä päälle niin tulee tarkempi selitys. Tuossa nyt on aaltoviivat myös taulun ja kentän nimen alla, joka johtuu vaan siitä että kannassani ei ole tuon nimistä taulua.

(Niin tuo on siis Microsoft SQL Server Management Studio, mutta luulisi MySQL:llekin löytyvän jotain siedettäviä työkaluja)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta