sugar
Erfahrenes Mitglied
Ich habe folgendes Problem, ich würde gern meine News Datenbank durchsuchen, ich habe eine Tabelle "news" und dort die Spalten "ID", "text" und "header". Die $eingabe wird von einem Formular übergeben. Leider scheint irgendetwas nicht zu funktionieren, denn obwoh ich einen Suchbegriff eingegeben habe, erscheint immer die Fehlermeldung "Bitte geben Sie ein Suchwort ein"?
Kann mir jemand vielleicht helfen? Hier der Code:
Kann mir jemand vielleicht helfen? Hier der Code:
PHP:
<?
if($eingabe=="")
{
echo "<b>Bitte geben Sie ein Suchwort ein.</b>";
}
else
{
$eingabe_array = explode(' ',$eingabe);
$query = 'select * from news where '; //anfang der abfrage
for($i=0; $i<count($eingabe_array); $i++){
$query .= "(text like '%".$eingabe_array[$i]."%' or header like '%".$eingabe_array[$i]."%' )";
//ob der $i-te begriff in einer der drei spalten enthalten ist (mit oder verknüpft)
if($i<count($eingabe_array)-1){
$query .= ' and ';
}
//verknüpfung der einzelnen worte mit und
}
$result = mysql_db_query($query); //anfrage an die datenbank
if(mysql_num_fields($result) < 1)
{
echo "Leider keine Treffer. Bitte geben Sie einen anderen Suchbegriff ein";
}
else
for($i=0; $i<$num_news; $i++){
$id = mysql_result($result,$i,'id'); //abfrage der news_id von der datenbank
$header = mysql_result($result,$i,'header'); //abfrage der ueberschift
$text = mysql_result($result,$i,'text'); //abfrage der news
$first = array_slice(explode(' ', $text), 0, 40); //explode teilt den string wieder an der ' ' und array_slice erstellt einen neuen array mit den ersten 40 elementen = worten der news
$kurze_news = join(' ', $first) . '... '; //join verbindet die elemente des arrays wieder zu einem string. am ende werden noch drei punkte angehängt...
echo '<a href="news_show.php?id='.$id.'">'.$header.'</a><br>'; //links auf die seite show_news.php
echo $kurze_news.'<br><br>'; //der 40 worte lange anfang des newstextes
}
}
?>