Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Mysql haku useammasta taulusta ja tietyiltä riveiltä

pistemies [20.03.2007 14:55:45]

#

Mites olis tämmöinen juttu.

Pitäisi etsiä Taulusta 1 "Teksti"-kentästä tietoa.
Valitaan taulusta rivit, joiden "alue" ja "osasto" sarakkeessa on jokin tietty teksti ja etsitään vain niiltä riveiltä.

Lebe80 [20.03.2007 14:58:55]

#

SELECT Teksti FROM foo WHERE alue=BAR AND osasto='FOOBAR';

?

Jos taas pitäisi löytää vain sarakkeilta, joissa pitää esiintyä tekstin joukosta jokin tekstin pätkä, niin käytä "alue=BAR":n sijasta LIKEä

pistemies [20.03.2007 16:37:36]

#

Lebe80 kirjoitti:

SELECT Teksti FROM foo WHERE alue=BAR AND osasto='FOOBAR';

?

Jos taas pitäisi löytää vain sarakkeilta, joissa pitää esiintyä tekstin joukosta jokin tekstin pätkä, niin käytä "alue=BAR":n sijasta LIKEä

Ymmärsitkö jees? Tai ymmäsrinkö minä sinua väärinpäin?

Ei siis listata kaikkia rivejä, joiden alue ja osasto täsmää, vaan ainoastaan ne rivit, joiden Teksti (ja myös Kuvaus) sarakkeessa on hakusanaa vastaava merkkijono.

ps. Vielä selvennystä:

Taulussa on esim. 100 riviä, joiden alue on "helsinki". Niiden joukosta täytyy löytää rivit joiden "teksti"-kentässä on etsitty hakusana.

pistemies [20.03.2007 19:10:05]

#

Tässä vähän nykysitä hahmottelua:

$result = mysql_query("SELECT * FROM Tuotteet WHERE (LIKE Teksti = '%$haku1%' OR Kuvaus = '%$haku1%') AND Alue = '$kunta' AND Osasto = '$alakategoria' AND Tila = '$yritykset'") or die (mysql_error());

Miten tuota pitäis muuttaa, jotta toimii?

Nykyiset virheilmoitukset:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE Teksti = '%testi%' OR Kuvaus = '%testi%') AND Alue = '261' AND Osasto' at line 1

Lebe80 [20.03.2007 19:48:56]

#

LIKE pitää olla myös OR:n jälkeen.
Eli nyt sinulla ei ole _mitään_ ehtolausetta OR:n jälkeen.
Hyvänä vinkkinä, kannattaa lukea nuo virheilmoitukset, eli tarkista syntaksi manuaalista.

pistemies [20.03.2007 19:50:04]

#

Ah juu, kokeillaan... likeä

pistemies [20.03.2007 22:07:49]

#

Sain tämän toimimaan. Likeä pukkasi väärinpäin, piti olla "Teksti LIKE '$haku'

Vastaus

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

Tietoa sivustosta