StephanF
21-11-2001, 16:22
Schönen guten Tag,
Wie kann ich mittels PHP meine Datenbank so abfragen, daß im echo nur die Tabellen ausgegeben werden, welche die Zeichenfolge "xyz" enthalten.
Wer kennt hier eine gute Lösung.
Danke für die Hilfe??
Wie kann eine Tabelle eine Zeichenfolge enthalten?
StephanF
21-11-2001, 16:31
Natürlich soll es heißen
Danke für die Hilfe; ohne ??
StephanF
21-11-2001, 18:55
ich meine die Namen der Tabellen
Gut, da nehmen wir meinen Code aus Thread #3191 und bauen ihn geringfügig um:
<?php
$suchstring = 'blub';
$result = mysql_list_tables ("dbname");
$i = 0;
while ($i<mysql_num_rows ($result)) {
$tb_names[$i] = mysql_tablename ($result, $i);
$i++;
}
for ($i=0;$i<=sizeof($tb_names);$i++) {
if (strpos($tb_names[$i],$suchstring)) echo 'Tabelle existiert, voller Name ist '.$tb_name[$i];
}
?>
So müsst das wohl gehen.
StephanF
21-11-2001, 20:02
Hört sich gut an,
werde es gleich mal ausprobieren.
Danke für die Hilfe
Hm... Also wenn du meine Meinung hören willst, dann hört sich das eher kompliziert und fehlerträchtig an *g*... Nun gut, meldest dich eben wenn was nicht stimmt :)
StephanF
21-11-2001, 20:28
Ich bekommen zwar keine Fehlermeldung und meine Datenbank wird auch richtig angesprochen,
aber keinerlei echo über eine Auflistung meiner Tabellen, welche im Namen z.B. hier "Hauptgruppe1" stehen haben.
Ist die Auswahl eigentlich richtig definiert?
Original geschrieben von StephanF
Ich bekommen zwar keine Fehlermeldung und meine Datenbank wird auch richtig angesprochen,
aber keinerlei echo über eine Auflistung meiner Tabellen, welche im Namen z.B. hier "Hauptgruppe1" stehen haben.
Ist die Auswahl eigentlich richtig definiert?
Hi Leutz - ich hab - glaub ich die Lösung :)
$anfrage="SHOW TABLES LIKE 'datenbankxyz%'";
If ($ergebnis=mysql_query($anfrage)) {
$extable =mysql_num_rows($ergebnis);
FOR ($i=0;$i<$extable;$i++) {
$erg = mysql_result($ergebnis,$i);
echo $erg;
echo "<br>";
} ....
>> Bei mir hats funktioniert - Die Funktion zeigt alle Datenbanken mit dem "Like" Suchmuster an !
cya