Hallo,
ich habe ein Problem und komme einfach nicht weiter. Wir erstellen in einem Schülerprojekt eine Website für eine Gemeinde. Dort wollen wir auch eine Suche implementieren die 62 Tabellen nach deren Inhalten durchsucht. Die Suche funktioniert, jedoch habe ich bisher noch keine möglichkeit gefunden wie ich alle Tabellen gleichzeitig bzw. in einem Befehl abfrage. Die Tabellen sind alle gleich angelegt(ID, Titel, Inhalt, Autor, Datum) daran liegt es nicht.
Das ist meine Suche, in der Variable $TableName sind alle Tabellen angegeben.
Weiß einer von euch eine Lösung, oder hat eine Idee wie es funktionieren könnte??
Danke
PHP-Code:
$suche = "";
//Check und Übernahme der Daten aus dem input in Variablen
if (isset($_POST['suche'])) $suche = $_POST['suche'];
$suche_array = explode(';',$suche);
// *********************** Alle Tabellen Auflisten
$query = "SELECT
`Titel`, `Inhalt`, `Autor`
FROM
$TableName
WHERE "; //anfang der abfrage
for($i=0; $i<count($suche_array); $i++){
$query .= "(Inhalt like '$suche_array[$i]' or Titel like '%".$suche_array[$i]."%' or Autor like '%".$suche_array[$i]."%')";
//ob der $i-te begriff in einer der drei spalten enthalten ist (mit oder verknüpft)
if($i<count($suche_array)-1){
$query .= ' AND ';
}
//verknüpfung der einzelnen worte mit und
};
// ******************************Ausgabe
$result = mysql_db_query('Datenabnk', $query); //anfrage an die datenbank
$num_news = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze
print mysql_error();
if ($num_news > 0 ){
for($i=0; $i<$num_news; $i++){
$news_id = mysql_result($result,$i,'ID'); //abfrage der news_id von der datenbank
$ueberschrift = mysql_result($result,$i,'Titel'); //abfrage der ueberschift
$news_text = mysql_result($result,$i,'Inhalt'); //abfrage der news
$first = array_slice(explode(' ', $news_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 $kurze_news.'<br><br>'; //der 40 worte lange anfang des newstextes
} ;
} else {
echo 'Fehler 1234!';
}
DonMuchacho