php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.10.2005, 22:28  
Gast
 
Beiträge: n/a
Standard Abfrage aller Tabellen über Schleife

Hallo zusammen,

ich beschreibe es mal ganz einfach:

Es kommen andauernd neue Tabellen in meiner DB.
Ich habe eine Abfrage drin, die alle Tabellen durchsuchen soll.
damit ich nicht jedes mal im Quellcode rumpfuschen muss,
könnte man es doch über eine Schleife regeln, oder?!

Nur die Frage, wie macht man sowas am besten?
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.10.2005, 14:01  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard

Wo genau liegt denn das Problem?
Wie man eine Schleife erstellt? Wie man an die Namen der Tabellen kommt? ...

Schau dir mal mysql_list_tables() und mysql_tablename() in der Doku an.
Damit alle Tabellen auslesen in einer Schleife und dann innerhalb der Schleife jede Tabelle abfragen.
Wenn du noch ein konkretes Problem hast, dann frag nochmal hier.
webbi ist offline  
Alt 21.10.2005, 14:09  
Gast
 
Beiträge: n/a
Standard

Hab grad selbst gemacht, Übung macht den Meister
Und damit die leute nicht dumm sterben die das gleiche Problem haben,
hier der Code(evtl. mit Syntaxfehlern, hab es noch nicht eingebunden,
müsste aber klappen):



PHP-Code:
<?php
$tabs
=array();
$res mysql_list_tables("datenbank");
while (
$row=mysql_fetch_row($res))
{
    if (
substr($row[0],0,5) =="host:_")
    {
    
array_push($tabs,$row[0]);
    }
 }

$sql="";
foreach (
$tabs as $tab)
{
$str="(SELECT $tab..host, daten.id, standort.prefix

FROM $tab, daten, standort, mitarbeiter
WHERE $tab.id = daten.id AND standort.id = mitarbeiter.standort_id AND mitarbeiter.id = daten.id)"
;

if (
$sql == ""$sql .= $str; else $sql.=" UNIION ".$str;


}
?>
Was ich vorher nicht erwähnt habe, ich suche nach allen tabellen die mit
host_ anfangen.

Jemand Einwände?
 
Alt 21.10.2005, 14:11  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

ich würde dir eher empfehlen, das db-design zu überdenken. wenn andauernd neue tabellen dazukommen, hast du definitiv was falsch gemacht.
__________________
derHund ist offline  
Alt 21.10.2005, 14:14  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

Zitat:
Jemand Einwände?
Code:
SHOW TABLES FROM datenbank LIKE "host%"
__________________
derHund ist offline  
Alt 21.10.2005, 14:18  
Gast
 
Beiträge: n/a
Standard

Und was ist wen ich eine Tabelle habe die hostgesamt o.ä. habe?
Dann liest er die mit, soll aber nur alle auslesen die mit "host_" beginnen.
 
Alt 21.10.2005, 14:41  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

na komm, den schritt kannste wohl selber gehen?

achtung: _ ist wildcard und muß, wenn erfordelich, maskiert werden => \_

ändern leiber dein tabellendesign, die obige query ist schon ziemlich schlecht formuliert, in einer schleife ists der totale overkill.
__________________
derHund ist offline  
Alt 22.10.2005, 12:16  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von derHund
na komm, den schritt kannste wohl selber gehen?
Das war keine Frage, das war eine Aussage
Zitat:
Zitat von derHund
ändern leiber dein tabellendesign, die obige query ist schon ziemlich schlecht formuliert, in einer schleife ists der totale overkill.
Kannst Du das mal bitte erläutern?
 
 


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
abfrage auf gleiche Spalten aus zwei Tabellen maeck Datenbanken 13 08.07.2008 10:09
Abfrage mehrere Tabellen SteiniKeule Datenbanken 14 18.04.2008 19:57
abfrage über mehrere tabellen mit einer bedingung DarkThunder PHP Tipps 2007 6 15.04.2007 17:13
Abfrage über 3 Tabellen madSoul Datenbanken 5 26.06.2006 12:25
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
Abfrage mehrerer Tabellen per PHP (Code vereinfachen) PHP Tipps 2007 4 18.12.2005 12:34
[Erledigt] abfrage mehrere tabellen PHP Tipps 2005-2 3 31.10.2005 21:57
problem bei ausgabe einer abfrage aus 2 Tabellen Lia PHP Tipps 2005-2 2 28.07.2005 17:30
Problem 2 - komplexere Abfrage aus drei Tabellen Datenbanken 0 15.07.2005 13:59
Abfrage über 3 Tabellen Datenbanken 3 20.09.2004 08:08
Abfrage zweier Tabellen funzt net richtig Datenbanken 1 17.09.2004 12:53
[Erledigt] Abfrage von drei Tabellen und Rückgabe einer ID Datenbanken 6 27.08.2004 09:36
2 Tabellen 1 Abfrage nilsfeld Datenbanken 6 11.08.2004 11:18
Abfrage über 3 Tabellen PHP Tipps 2004 3 31.07.2004 22:34
Select abfrage in Schleife PHP Tipps 2004 2 20.07.2004 15:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
schleifen über mehrere tabellen, http://www.php.de/php-tipps-2005-2/32755-abfrage-aller-tabellen-ueber-schleife.html, sql schleife alle tabellen, abfrage alle tabellen, wie macht man eine id abfrage mit html, sql server schleife über alle tabellen, sql server 2005 abfrage alle tabellen, sql-server schleife, sql server schleife über alle datenbanken, mysql_list_tables bedingung, jede tabelle abfragen, alle tabellen in einer abfrage, alle tabellen einer datenbank abfragen, sql server schleife zwei tabellen, mysql schleife \über alle tabellen\, zwei sql tabellen eine schleife, schleife gehe 3 tabellenblätter durch, php alle tabellen einer datenbank abfragen, die mitarbeiter-id-daten enthalten, alle tabellen durchsuchen php.net

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:40 Uhr.




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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.