Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.
Kan je iets duidelijker zijn waar die 2 tabellen voor staan? Als ze (ongeveer) dezelfde soort data voorstellen dan kun je het beter in 1 tabel steken. Zie daarvoor tutorials over "normaliseren".
En zoeken in die 2 tabellen zul je anders met 2 query's moeten doen.
SELECT
*
FROM
iets1, iets2
WHERE
MATCH(subject, message, kleur, menu) AGAINST('".$find."' IN BOOLEAN MODE)
De kolommen subject, message, kleur en menu MOETEN in 1 tabel staan, je kunt in MySQL geen fulltext search doen op data in meerdere tabellen. De index die je nodig hebt, fulltext index, kan namelijk alleen maar op 1 tabel worden aangemaakt.
Wanneer jij een fulltext search wilt uitvoeren op 2 tabellen, zul je dus gewoon een JOIN moeten gebruiken en 2x de MATCH-AGAINST in je WHERE moeten opnemen, één voor iedere fulltext index.
en let erop dat je tabel op MyIsam moet staan. InnoDB kent geen full-text search
Daar krijg je bij mijn weten wel een foutmelding op, je kunt in MySQL alleen een fulltext search uitvoeren wanneer er ook een fulltext index aanwezig is. En die kun je in innoDB niet aanmaken.
Gelukkig kent PostgreSQL deze beperkingen niet, kun je een fulltext search doen op ieder veld en zonder dat er een index is aangemaakt. Voor de performance kan een index wel handig zijn. Geef dan wel even de juiste taal op, je kunt per taal (of zelfs vaktaal) een eigen index aanmaken.
$data = mysql_query(" SELECT * FROM iets1 WHERE MATCH(subject, message, kleur, menu) AGAINST('".$find."' IN BOOLEAN MODE) INNER JOIN (iets2 WHERE MATCH(kleur, menu) AGAINST('".$find."' IN BOOLEAN MODE)");
zo iets? maar krijg ik een fout melding
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/blabla.nl/blabla.nl/httpd.www/aj/zoeken.php on line 319
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/blabla.nl/blabla.nl/httpd.www/aj/zoeken.php on line 356
Ja, als je even na had gedacht en die foutmelding had gelezen had je geweten dat dat een doodnormale PHP foutmelding is. Geen SQL. Je gebruikt duidelijk geen goede foutafhandeling:
Dan krijg je alleen maar resultaten als tabel1.id én tabel2.id $1 en $3 zijn. Dat zal waarschijnlijk niet vaak het geval zijn. De TS wil alleen in 2 tabellen de resultaten mengen, zodat het één geheel lijkt.
SELECT
tabel1.id,
tabel2.id
FROM
tabel1, tabel2.
WHERE
MATCH(tabel1.subject, tabel1.message, tabel1.kleur, tabel1.menu) AGAINST (...)
OR
MATCH (tabel2.menu, tabel2.kleur) AGAINST (...)
Is dat geen idee? [Ik heb absoluut geen ervaring met MATCH() AGAINST(), maar in normale omstandigheden denk ik dat dit zou moeten werken.