Willkommen in der Webstatt Zum Webstatt Blog und Stories
fish fish am 09.02.07 11:49

hi, meine suche funktioniert net. kann mir wer helfen?

http://fish.bierquartier.de/index.php?suche=php

keine fehlermeldung, nur wird nix angezeigt

der code: <?//die suchhe seite
elseif ($_GET['kommentare'] == "0" AND $_GET['alles'] == "0" AND !empty($_GET['suche'])) {

//auswahl für die suchfunktion
$abfrage_suche = "SELECT * FROM `20_inhalt` WHERE MATCH (`titel`, `beschreibung`, `datum`) AGAINST ('".mysql_real_escape_string($_GET['suche'])."')";
$ergebnis_suche = mysql_query($abfrage_suche);

//anzeige der ergebnisse
while($row = mysql_fetch_object($ergebnis_suche)) {
?> <h1><?=bbcodes($row->titel)?></h1>
<p class="datum"><?=date("d.m.Y", $row->datum)?></p>
<div class="artikel"><?=vorschautext(htmlentities($row->beschreibung), 400, 15)."...";?>
<br /><a href="artikel_suche-<?=$row->ebene_1?>-<?=$row->ebene_2?>-<?=$row->id?>-<?=$_GET['suche']?>.htm" title="den gesamten artikel '<?=$row->titel?>' vom <?=date("d.m.Y", $row->datum)?> lesen.">mehr</a>
</div><?
}
}?>

netcup.de Warum gibt es hier Werbung?
fish fish am 09.02.07 15:06

weiss keiner was?

mab mab am 09.02.07 19:11

hast du einen wortindex für die attribute angelegt?? :)

http://www.php-faq.de/q/q-mysql-volltextsuche.html
http://dev.mysql.com/doc/refman/5.1/de/fulltext-search.html

fish fish am 09.02.07 19:33

so, ich hab jetzt
ALTER TABLE 20_inhalt ADD FULLTEXT (
beschreibung
)


ausgefürht, gebracht hat es nix, suchergebnisse gibts trozdem keine...

mab mab am 09.02.07 22:32

wenn du dort alles richtig eingestellt hast, dann überprüf doch mal ob dein else zweig auch die richtigen bedingungen hat. :rolleyes:

dann den sql string ausgeben und überprüfen: print $abfrage_suche;
wenn immer noch nichts funktioniert, dann alles so einfach zerlegen, wie es nur geht oder ggf neu schreiben.

fish fish am 10.02.07 17:06

hmm okay.. also: jetzt gibts halt ne fehlermeldung die ich mir nicht erklären kann:
SELECT * FROM `20_inhalt` WHERE MATCH (`titel`, `beschreibung`, `datum`) AGAINST ('php')
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result
resource in /www/htdocs/thefish/index.php on line 417


http://fish.bierquartier.de/index.php?suche=php

<?//auswahl für die suchfunktion
$abfrage_suche = "SELECT * FROM `20_inhalt` WHERE MATCH (`titel`, `beschreibung`, `datum`) AGAINST ('".$_GET['suche']."')";
$ergebnis_suche = mysql_query($abfrage_suche);
echo $abfrage_suche;

//anzeige der ergebnisse
while($row = mysql_fetch_object($ergebnis_suche)) {
?> <h1><?=bbcodes($row->titel)?></h1>
<p class="datum"><?=date("d.m.Y", $row->datum)?></p>
<div class="artikel"><?=vorschautext(htmlentities($row->beschreibung), 400, 15)."...";?>
<br /><a href="artikel_suche-<?=$row->ebene_1?>-<?=$row->ebene_2?>-<?=$row->id?>-<?=$_GET['suche']?>.htm" title="den gesamten artikel '<?=$row->titel?>' vom <?=date("d.m.Y", $row->datum)?> lesen.">mehr</a>
</div><?
}
}?>


wenn ich die abfrage im mysql editor ausfürhe, bekomme ich folgende fehlermeldung:
#1191 - Can't find FULLTEXT index matching the column list

mab mab am 10.02.07 21:12

hast du links bzw. die seiten durchgelesen ??
ist die tabelle eigentlich überhaupt groß genug, damit sich eine volltext suche lohnt?

weiß nicht wie du das datum abspeicherst, aber ich glaub die volltext suche geht nur für text felder, also varchar und char.

leg am besten einen kombinierten index für die felder an:

CREATE FULLTEXT INDEX index ON table(
feld1 ,
feld2 ,
feld3
);


die ausgabe in etwa so:

$result = mysql_query($sql) or die (mysql_error());

while($row = mysql_fetch_object($result))
{
$row->feld1;
}


mach erst mal eine ganz einfach ausgabe. damit bekommst du sicher schnell raus, wo es hakt

Hope it helps.

fish fish am 10.02.07 23:03

danke dir, ich hatte vergessen das datum abfrage rauszunehmen es funktioniert jetzt. (den 2. lunk ahbe ich gelesen, der 1. geht nicht)

mab mab am 11.02.07 16:24

na dann passt ja alles ...

BTW: du kannst das mit boolean fulltext noch verbessern:

http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

have phun ;-)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt