Einzelnen Beitrag anzeigen
Alt 27.07.2009, 15:58  
DonMuchacho
Neuer Benutzer
 
Registriert seit: 27.07.2009
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
DonMuchacho befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Mehrere MySQL Tabellen mit PHP abfragen

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 ){
      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), 040); //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) . '...&nbsp;'//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
DonMuchacho ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten