Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL: välilyönti kentän nimessä

Sivun loppuun

Petja [21.12.2010 18:07:38]

#

Huomasin, ettei MySQL-hyväksy (tai siis hyväksyy, muttei palauta tulosta) heittomerkkien sisäänlaitettua tekstiä kenttä-kohdassa.

SELECT * FROM XXXXX WHERE 'XXXXX' LIKE 'XXXX'

Ja ettäkö miksi olen laittanut ne heittomerkkien sisään - kentän nimi on kaksiosainen, eli sisältää välilyönnin - näin: Alkuperäinen nimi? Miten siis saisin MySQL:n listaamaan normaalisti, jos kentän nimi on kaksiosainen?

Antti Laaksonen [21.12.2010 18:16:24]

#

Toimisiko, jos kirjoitat kentän nimen `-merkkien sisään?

Petja [21.12.2010 18:33:22]

#

Ei, valitettavasti.

Antti Laaksonen [21.12.2010 21:48:50]

#

Testasin asiaa, ja `-merkin pitäisi kyllä auttaa.

Millaista kyselyä tarkalleen kokeilit?

Chiman [21.12.2010 22:03:02]

#

Vika voi olla LIKE-sanan jälkeisessä kohdassa. Laita loppuosa testiä varten vaikka näin: LIKE '%' LIMIT 1

Petja [24.12.2010 13:57:16]

#

Tämä virhe tuli, kun yritin laittaa `-merkkien sisään:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/virtual/testi/htdocs/haku.php on line 14

Tässä vielä koko rivi:

$hakuni = $_GET[q];
$result = mysql_query("SELECT * FROM Tiedot WHERE Alkuperäinen nimi LIKE '{$hakuni}'");

Antti Laaksonen [24.12.2010 14:03:46]

#

Mitä tulee, jos suoritat kyselyn tähän tapaan?

$result = mysql_query("SELECT ...") or die(mysql_error());

Petja [24.12.2010 14:06:17]

#

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 'nimi = `Työtön`' at line 1

Ongelma näet on tuo Alkuperäinen nimi. Koska siinä on välilyönti, niin MySQL käsittää vain sanan nimi kenttänä, eikä kokonaan Alkuperäinen nimi. Kuten ylläolevasta esimerkistä käy ilmi.

Metabolix [24.12.2010 14:08:35]

#

`-merkkeihin kuuluu laittaa se `Alkuperäinen nimi`. Haettava arvo on ihan oikein '-merkeissä.

Petja [24.12.2010 14:13:10]

#

Nyt se ei enää palauta virhettä, muttei kyllä tulostakaan. MySQL-kannat on aivan oikein asetettu ja hakusanakin on sellainen, että pitäisi löytyä.

EDIT: Thanx. Nyt toimii. Piti vain laittaa tuo %-merkki.


Sivun alkuun

Vastaus

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

Tietoa sivustosta