Toon posts:

[MySQL] fulltext query probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer een search te maken voor me internet shop. Nu krijg ik de query niet goed. Het veld 'titel' in de tabel 'p_product' heeft 'FULLTEXT' mee gekregen. Als ik de query uitvoer krijg ik geen error, maar ook geen resultaten. Er staat echt genoeg data in de tabel 'p_product'. Kan iemand mij vertellen wat ik fout doe?


PHP:
1
2
3
4
5
6
7
8
9
$result = mysql_query("
SELECT p.*, c.id AS cid, c.titel AS ctitel
FROM p_product p, p_cato c
WHERE MATCH (p.titel)
AGAINST ('$term')
AND c.id = p.cato
ORDER BY p.id DESC
LIMIT 0, 250
");


In PHPMyAdmin krijg ik dus een leeg scherm, althans de query wordt uitgevoerd, maar geen resultaten. Maar als ik onder me query uitvoer en ik zet dit eronder:

PHP:
1
$raa = mysql_query($result) or die (mysql_errno() . ":" . mysql_error());


Dan krijg ik de volgende error: 1064:You have an error in your SQL syntax near 'Resource id #5' at line 1

[ Voor 31% gewijzigd door Verwijderd op 31-08-2003 22:33 ]


  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
echo de hele query eens, die is namelijk incorrect.
is $term geëscaped?

Pas de replâtrage, la structure est pourrie.


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
zoals de foutmelding al zegt probeer je je resource id (pointer naar de resultaten van je query) te 'queryen'

je wil waarschijnlijk dit doen:
PHP:
1
$raa = mysql_fetch_assoc($result);

Verwijderd

Topicstarter
Als ik $result echo krijg ik 'Resource id #5'; Verder was '$raa' gewoon een voorbeeldje om de fout weer te geven. Dus weet nog steeds niet wat er fout gaat. De query zelf moet fout zijn, want als ik de query uitvoer in PHPmyAdmin krijg ik geen resultaat, maar ook geen foutmelding :(

Verwijderd

print anders de query eens in php, en laat die zien hier..

PHP:
1
2
3
4
5
6
7
8
9
print "SELECT p.*, c.id AS cid, c.titel AS ctitel 
FROM p_product p, p_cato c 
WHERE MATCH (p.titel) 
AGAINST ('$term') 
AND c.id = p.cato 
ORDER BY p.id DESC 
LIMIT 0, 250 
";
exit;

  • Gods Lonely Man
  • Registratie: April 2002
  • Laatst online: 19-02-2024

Gods Lonely Man

A sidekick's sidekick

FROM p_product p, p_cato c

maar dan

FROM p_product AS p, p_cato AS c
:)

[ Voor 14% gewijzigd door Gods Lonely Man op 01-09-2003 08:44 ]

It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.

If it weren't for Carbon-14, I wouldn't date at all.


Verwijderd

Topicstarter
PsychoBoy schreef op 01 september 2003 @ 08:44:
FROM p_product p, p_cato c

maar dan

FROM p_product AS p, p_cato AS c
:)
Dat is precies het zelfde :/

En als ik me query print, en ik voer bv 2000 in is dit de output:


code:
1
SELECT p.*, c.id AS cid, c.titel AS ctitel FROM p_product p, p_cato c WHERE MATCH (p.titel) AGAINST ('2000') AND c.id = p.cato ORDER BY p.id DESC LIMIT 0, 250


Ik twijfel nu meer aan PHP zelf, dan aan me query. Heb hem versimpelt, en nu nog steeds geen resultaat.

PHP:
1
2
3
4
5
SELECT *
FROM p_product
WHERE MATCH (titel)
AGAINST ('2000')
LIMIT 0, 250;
dat zou in PHPmyAdmin resultaat moeten geven, maar helaas nog niets :w. Als fulltext van 'titel' weg ik krijg ik een error dat fulltext er niet opzit. Dus dat klopt wel allemaal. Wordt ik nu gek, of zie ik iets helemaal over het hoofd.

[ Voor 33% gewijzigd door Verwijderd op 01-09-2003 10:28 ]


  • Gods Lonely Man
  • Registratie: April 2002
  • Laatst online: 19-02-2024

Gods Lonely Man

A sidekick's sidekick

zie het nu zelf ook dat "AS"is niet nodig
sorry :D


waar om niet LIKE gebruiken dat werkt iig?
code:
1
2
3
4
5
SELECT p.*, c.id AS cid, c.titel AS ctitel 
FROM p_product p, p_cato c 
WHERE p.titel LIKE "%2000%" AND c.id = p.cato 
ORDER BY p.id DESC 
LIMIT 0, 250


die error van geen fulltext krijg ik hier ook terwijl hij er wel zo instaat 8)7

It was that kind of a crazy afternoon, terrifically cold, and no sun out or anything, and you felt like you were disappearing every time you crossed a road.

If it weren't for Carbon-14, I wouldn't date at all.


Verwijderd

Topicstarter
Ja, maar dan kan ik niet fulltext zoeken, en nu is dat niet zo heeel belangrijk, maar ik wil gewoon weten waarom hij niet goed wil werken :(

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 21-08 12:49
is je db-connectie wel correct? Heeft de user wel voldoende rechten om alle tabellen te mogen lezen (select-rechten)? Doe eens een op dezelfde plaats een simpele query (SELECT * FROM p_product).

Verwijderd

Topicstarter
Ik heb me hele tabel verwijdert, en op nieuw aangemaakt en nu werkt het wel. Maargoed nu zit ik met het volgende probleem


SQL-query :

SELECT p.*, c.id AS cid, c.titel AS ctitel
FROM p_product p, p_cato c
WHERE MATCH (p.titel, p.info)
AGAINST ('test')
AND p.cato = c.id
ORDER BY p.id DESC
LIMIT 0, 250

MySQL retourneerde:


Can't find FULLTEXT index matching the column list


Nu ik dus heb opgegeven dat hij ook in 'p.info' moet zoeken. En 'info' heeft echt FULLTEXT.

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
Nu ik dus heb opgegeven dat hij ook in 'p.info' moet zoeken. En 'info' heeft echt FULLTEXT.
Heb je nu een index per veld of EEN index over beide velden. Het moet nml het laatste zijn.
Pagina: 1