php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.07.2009, 15:58   #1 (permalink)
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

Alt 27.07.2009, 16:16   #2 (permalink)
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von DonMuchacho Beitrag anzeigen
Die Tabellen sind alle gleich angelegt(ID, Titel, Inhalt, Autor, Datum) daran liegt es nicht.
Was der Grund für dieses Design sein soll wissen wahrscheinlich nicht mal die Götter.
Und wenn du nicht jede Tabelle einzeln abfragen willst, kommst du nicht um UNION rum
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 27.07.2009, 16:49   #3 (permalink)
Neuer Benutzer
 
Registriert seit: 27.07.2009
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
DonMuchacho befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lazydog Beitrag anzeigen
Was der Grund für dieses Design sein soll wissen wahrscheinlich nicht mal die Götter.
Und wenn du nicht jede Tabelle einzeln abfragen willst, kommst du nicht um UNION rum
Warum die alle so aussehen ist Schnell erklärt. Die haben alle eine mehr oder weniger gleiche funktionalität, sind jedoch getrennt vonnöten um dem nicht html/php fähigen benutzer die Arbeit zu erleichtern bzw. zu ermöglichen.
Danke für die Antwort

Gruß
DonMuchacho ist offline   Mit Zitat antworten
Alt 27.07.2009, 17:08   #4 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 21.228
PHP-Kenntnisse:
Fortgeschritten
nikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblick
Standard

Da muss man jetzt mal ehrlich sein: gutes Datenbankdesign zielt eher selten auf die direkte Nutzbarkeit. Nur weils ähnlich aussieht ist eine Datenbank eben kein Excelfile.
Und
Zitat:
um dem nicht html/php fähigen benutzer die Arbeit zu erleichtern bzw. zu ermöglichen.
ist damit kein sinnvolles Argument, um 62 statt einer gemeinsamen Tabelle durchsuchen zu müssen.
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--
nikosch ist offline   Mit Zitat antworten
Alt 27.07.2009, 17:30   #5 (permalink)
Neuer Benutzer
 
Registriert seit: 27.07.2009
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
DonMuchacho befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Da muss man jetzt mal ehrlich sein: gutes Datenbankdesign zielt eher selten auf die direkte Nutzbarkeit. Nur weils ähnlich aussieht ist eine Datenbank eben kein Excelfile.
Und
ist damit kein sinnvolles Argument, um 62 statt einer gemeinsamen Tabelle durchsuchen zu müssen.
Dass das nicht Optimal ist weiß ich auch, aber es wurde eben so gewünscht bzw. die Umsetzung war nicht anders möglich.

Gruß
DonMuchacho ist offline   Mit Zitat antworten
Alt 27.07.2009, 17:36   #6 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 21.228
PHP-Kenntnisse:
Fortgeschritten
nikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblick
Standard

Die Antwort steht in #2.
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--
nikosch ist offline   Mit Zitat antworten
Alt 27.07.2009, 19:42   #7 (permalink)
yab
Erfahrener Benutzer
 
Registriert seit: 05.04.2009
Beiträge: 291
PHP-Kenntnisse:
Anfänger
yab befindet sich auf einem aufstrebenden Ast
Standard

Bei JOINS bin ich schonmal ans Limit gestoßen.
Code:
MySQL can only use 61 tables in a join
Tja, wenn das bei UNION auch so ist, fehlt dann leider genau eine
yab ist offline   Mit Zitat antworten
Alt 27.07.2009, 19:47   #8 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 21.228
PHP-Kenntnisse:
Fortgeschritten
nikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblick
Standard

Glaub ich nicht. UNION ist ja viel trivialer.
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Abfrage über 5 Tabellen evtl. IF ghost120 Datenbanken 11 13.04.2009 20:00
[Erledigt] MySQL Auswahl der vorhandenen IDs in einer Tabelle &amp; dadurch auswahl ander Enra PHP Einsteiger 11 20.03.2009 21:13
Daten aus zwei Tabellen Abfragen jason86 Datenbanken 6 13.01.2009 01:05
zwei while schleifen mit unterschiedlichen mysql tabellen mygov PHP Einsteiger 12 01.01.2009 14:32
Abfragen aus 2 Tabellen Kombinieren azrax Datenbanken 20 15.12.2008 00:35
PHP Array in MYSQL Tabellen schreiben Matt Datenbanken 1 26.02.2008 19:43
Berechnung über mehrere Abfragen aus mysql Slappi PHP Tipps 2008 2 18.12.2007 14:22
Daten aus MySQL Datenbank abfragen trivial Datenbanken 2 29.04.2006 17:48
Problem beim Abfragen aller Tabellen in einer Datenbank gulli23 Datenbanken 5 26.02.2006 20:04
2 Tabellen abfragen und dann variable unterschiedlich setzen Anuschka PHP Tipps 2004-2 2 22.12.2004 02:46
[Erledigt] Suche über 2 Tabellen in MySQL PHP Tipps 2004-2 4 15.12.2004 16:05
Daten Sortieren aus meherern mySQL tabellen PHP Tipps 2004-2 1 12.12.2004 18:22
mySQL Tabellen CHRIS PHP Tipps 2004-2 10 04.12.2004 20:40
alle tabellen in einer mysql db ausgeben PHP Tipps 2004 2 06.09.2004 19:36
abfragen zwischen 2 Tabellen! Boennchen Datenbanken 1 02.08.2004 14:50

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql 2 tabellen gleichzeitig öffnen, mysql tabellen auflisten php, mysql tabellen mit php abfragen, mehrere tables durchsuchen

Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum