Hallo,
ik ben bezig met een zoekmachinescript en daarom wil ik de teksten, namen en beschrijvingen enzovoort doorzoeken op de woorden die erin staan en kijken of dat overeen komt met de zoekopdracht.
Ik heb op Tbforum ( http://www.tbforum.nl/thread/113748.html ) het een en ander gevraagt hoe ik het kon aanpakken, maar ik stuitte op het volgende probleem.
Mijn code ziet er als volgt uit:
Ik krijg er een foutmelding bij:Code:mysql_query("CREATE FULLTEXT INDEX minie ON sites (link,naam)"); $sql = "SELECT * FROM sites WHERE MATCH (link,naam) AGAINST ('".$zoekterm."')"; $query = mysql_query($sql) or die("De zoekactie is mislukt: ".mysql_error());
Ik zal vast wel iets verkeerd doen, maar wat?De zoekactie is mislukt: Can't find FULLTEXT index matching the column list
Iemand die mij hier mee kan helpen ben ik zeer dankbaar.
Met vriendelijke groet,
Arthur
- [PHP] Query werkt niet bij meerdere velden
-
06-08-2008, 23:17 #1
- Berichten
- 59
- Lid sinds
- 17 Jaar
[PHP] Query werkt niet bij meerdere velden
-
In de schijnwerper
-
07-08-2008, 08:32 #2
- Berichten
- 415
- Lid sinds
- 17 Jaar
Heb je niks kunnen vinden op google?
http://www.google.nl/search?hl=nl&q=...a=lr%3Dlang_nl
-
07-08-2008, 10:59 #3
- Berichten
- 59
- Lid sinds
- 17 Jaar
Ik heb de eerste pagina bekeken en ik heb van alles geprobeerd, maar het wil niet lukken.
In de database staat het ook goed, dus daar kan het niet aan liggen en daarvoor heb ik een query die het alsnog aanmaakt, dus ik begrijp het eerlijk gezegt niet.
Code:<?php include('connect.php'); function textLimit($string, $length, $replacer = '...') { if(strlen($string) > $length) return (preg_match('/^(.*)\W.*$/', substr($string, 0, $length+1), $matches) ? $matches[1] : substr($string, 0, $length)) . $replacer; return $string; } echo ' <form action="'.$_SERVER['REQUEST_URI'].'" method="get"> <input type="text" id="zoekbalk" name="zoek" /> <input type="submit" class="buttonzoeken" name="actie" value="Zoeken" /> <input type="submit" class="button" name="zoeken" value="Ik doe een gok" /> </form> '; if(isset($_GET['actie'])) { $zoekterm = mysql_real_escape_string($_GET['zoek']); //$zoekterm = " ".$zoekterm." "; function zoeken($zoekterm) { global $links; mysql_query("CREATE FULLTEXT INDEX minie ON sites (link)"); $sql = "SELECT * FROM sites WHERE MATCH (link) AGAINST ('".$zoekterm."')"; $query = mysql_query($sql) or die("De zoekactie is mislukt: ".mysql_error()); while($fetch = mysql_fetch_assoc($query)) { echo "<a href='".$fetch['link']."'>".$fetch['naam']."</a> <br />".textLimit($fetch['beschrijving'],200)."<br />".$fetch['link']." <br /><br />"; $links .= $fetch['link']."@"; } } zoeken($zoekterm); } ?>
Alvast bedankt,
Arthur
-
07-08-2008, 15:48 #4
- Berichten
- 792
- Lid sinds
- 19 Jaar
Is het type van je tabel 'MyISAM'?
Bovendien is je script ook niet echt supertop; een index hoef je ook maar éénmalig aan te maken.
Ook is het niet handig om in een functie tekst te outputten (dmv echo).
Je functie zoeken() heeft nu geen enkele meerwaarde.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic