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ä.
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ä
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.
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
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.
Ah juu, kokeillaan... likeä
Sain tämän toimimaan. Likeä pukkasi väärinpäin, piti olla "Teksti LIKE '$haku'
Aihe on jo aika vanha, joten et voi enää vastata siihen.