Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP Schleife gesucht zur Abfrage mehrerer MySQL Datenbanken

Frage Entwicklung PHP

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

20.11.2008, aktualisiert 13.01.2009, 8218 Aufrufe, 10 Kommentare

bin mit meinen php Kenntnissen wieder an eine Grenze gestossen. Ich will in mehreren Datenbanken nach eindeutigen Daten suchen, weiss aber nicht, wie ich so eine Schleife aufbauen muß

Hallo Forum,

leider bin ich mit meinen php-Kenntnissen wieder an eine Grenze gestoßen.
Mein Ziel ist ein Abfrage durch mehrere Datenbanken durchzuführen. Zum besseren Verständnis:
für jeden Kunden existiert in meinem MySQL Server eine eigene Datenbank, darin ist auch nur eine Tabelle. In diese Datenbank laufen täglich Bewegungssätze, sie werden also wirklich täglich größer.
Für jeden Kunden gibt es eindeutige Informationen, die es nur bei ihm gibt. Nennen wirs mal Artikel-Nummer. Artikel-Nummern können nicht mehrfach vorkommen, sie sind eindeutig einem Kunden zugeordnet.
Jetzt kommt ein Artikel zur Reparatur zurück, plötzlich liegen 10 Geräte da, oder 20. Ich will jetzt schnell nachschauen können, bei welchem Kunden dieses eine bestimmte Gerät Bewegungsdaten erzeugt hat.

Ich denke an eine Schleife, die Datenbank 1 öffnet, alles nach dieser Nummer durchsucht, und wenn nichts gefunden wurde, diese Datenbank schließt, die nächste öffnet, alles durchsucht, usw., bis mir der Kunde angezeigt wird, bei dem dieses Gerät im Einsatz war.

Und da brauche ich Hilfe. Ich weiss nicht, wie ich so eine Schleife aufbauen soll. Ich habe zwar alle Zugangsdaten zu den Kunden in einer eigenen Datenbank liegen, die ich abfragen kann, aber wie stelle ich es an, bei einer Fehlabfrage die Verbindung zu trennen, automatisch die nächste Datenbank abzufragen, usw.

Hat jemand von Euch so was schon mal gemacht?

Jeder Tip bringt mich weiter.

Vielen Dank für jede Idee.
Schöne Grüße
Christof
Mitglied: ITLocke
21.11.2008 um 07:36 Uhr
Guten Morgen,

mal abgesehen davon, dass du anstelle pro Kunde gleich eine neue Datenbank anzulegen, lieber eine neue Tabelle hättest nehmen sollen,

gibt es in PHP den Befehl mysql_select_db("deine_Datenbank").
Dieser macht aber nur Sinn, wenn du einen Benutzer hast, der auf alle Datenbanken zugreifen kann.

Mit mysql_list_dbs() bekommst du die Liste deiner Datenbanken.

Die genaue Befehssyntax kannst du unter

1 mit der Suchfunktion oben rechts nachlesen.

Gruß und viel Erfolg

Locke
Bitte warten ..
Mitglied: gechger
21.11.2008 um 11:58 Uhr
Guten Morgen Locke,
daß mit den Tabellen in einer Datenbank geht aus Sicherheitsgründen nicht. Die Zugangsdaten zur Datenbank müssen dem Kunden bekannt sein. Er hätte dann aber Zugriff auf alle anderen Kundentabellen in dieser Datenbank. So hat jeder seine eigene Datenbank mit eigenen Zugängen.

In einer eigenen Datenbank habe ich sämtliche Zugangsdaten hinterlegt. Da habe ich auch schon ein Script, um diese schnell auszulsen, wenn ich die Daten brauche. In weiteren Abfragescripts benutze ich meine Kundentabelle auch regelmäßig.

Jetzt brauche ich nur Starthilfe bei der Schleife. Meine Idee ist, alle Einträge meiner Kundendatenbank in ein Array zu schreiben. Eine Schleife soll den ersten Eintrag auslesen, sich mit dieser Datenbank verbinden, die Inhalte nach den Suchbegriffen durchsuchen, die Verbindung trennen, dann den nächsten Array Eintrag auslesen, sich mit der zweiten Datenbank verbinden, durchsuchen, usw. Zum Schluß will ich ausgegeben haben, in welcher Datenbank mein Suchbegriff gefunden worden ist.
Hört sich erstmal einfach an, aber wie baue ich so eine Schleife auf?

Schöne Grüße
Christof
Bitte warten ..
Mitglied: ITLocke
22.11.2008 um 11:17 Uhr
Hallo Christof,

so schwer ist das auch nicht.

01.
  
02.
<?php 
03.
 
04.
//ArtikelID dem Script übergeben  
05.
->$ArtikelID = GET/POST/SESSION...<- 
06.
 
07.
// Zugangsdaten besorgen und in ein Array speichern 
08.
$db_connect = mysql_connect(->DB_Zugangsdaten<-); 
09.
$sql_string = "SELECT * FROM Tbl_Zugangsdaten"
10.
$erg = mysql_query($sql_string); 
11.
while($temp = mysql_fetch_oject($erg)) 
12.
  $Array_Zugangsdaten[] = $temp
13.
 
14.
// Speicher freigeben und Verbindung beenden 
15.
mysql_free_result(); 
16.
mysql_close($db_connect); 
17.
 
18.
// Hauptschleife 
19.
foreach($Array_Zugangsdaten AS $key => $Zugangsdatensatz
20.
21.
  $db_connect = mysql_connect(->$Zugangsdatensatz->DB_Name/User/Pw<-); 
22.
  $sql_string = "SELECT * FROM ".$Zugangsdatensatz->Tbl_name." WHERE ArtikelID = ".$ArtikelID
23.
  $erg = mysql_query($sql_string); 
24.
  while($temp = mysql_fetch_object($erg)) 
25.
    $Array_Ergebnis[] = $temp
26.
  mysql_free_result(); 
27.
  mysql_close($db_connect); 
28.
29.
//Ausgabe des Ergebnisarrays oder Weiterverarbeitung 
30.
var_dump("<pre>", $ArrayErgebnis, "</pre>"); 
31.
?>
Das sollte es im Groben schon sein.
Das, was in -><- steht, muß natürlich noch angepasst werden.
Das Script ist also nicht funktionsfähig, so, wie es hier steht!

Falls evtl Fehler im Script sind, oder jemand Verbesserungsvorschläge hat, ich bin für konstruktive Kritik gern zu haben...

So dann noch ein schönes Wochenende

Gruß

Locke
Bitte warten ..
Mitglied: gechger
22.11.2008 um 14:41 Uhr
Grüß Dich Locke,

wenn ich das jetzt richtig verstehe, sorgt die foreach Schleife dafür, daß die verschiedenen Datenbanken durchlaufen werden, jeweils der sql-String benutzt wird und in der while Schleife ergfolgt die Ausgabe in ein Array.

Das probier ich gleich mal aus.
Vielen vielen Dank vorerst

Schöne Grüße
Christof
Bitte warten ..
Mitglied: Guenni
24.11.2008 um 02:09 Uhr
Hi gechger,

die Zugangsdaten sind eigentlich nicht relevant, es sei denn, du hättest den
Administrator, der ja Zugriff auf alle Datenbanken haben sollte, aus den DB's ausgesperrt.

Das folg. Script stellt ein Formular dar, in dem ein Spaltenname und ein Suchbegriff
eingegeben werden.

Nach Senden des Formulars werden die entsprechenden Spaltennamen jeder Tabelle
in jeder Datenbank nach dem Suchbefriff "abgeklappert" und die Ergebnisse aufgelistet.

01.
<html> 
02.
<head> 
03.
<title>Untitled</title> 
04.
</head> 
05.
<body> 
06.
<form action="multi-db-abfrage.php" method="post"
07.
Spalte <input type="text" name="spaltenname" /> 
08.
Suchbegriff <input type="text" name="ausdruck" /> 
09.
<input type="submit" name="cmd" value="Suche" /> 
10.
</form> 
11.
<? 
12.
$cmd=$_POST['cmd']; 
13.
if($cmd){ 
14.
$conn=mysql_connect("localhost","admin_name","admin_passwort"); 
15.
/* 
16.
Datenbanknamen in einer Variablen ablegen 
17.
*/ 
18.
$db_list = mysql_list_dbs(); 
19.
$i=0; 
20.
/* 
21.
Anzahl Datenbanknamen in einer Variablen ablegen 
22.
*/ 
23.
$count = mysql_num_rows($db_list); 
24.
/* 
25.
Nacheinander den Datenbanknamen extrahieren ... 
26.
*/ 
27.
while ($i < $count) { 
28.
 $dbs=mysql_db_name($db_list,$i); 
29.
 /* 
30.
 ... alle Tabellen der Datenbank in einer Variablen ablegen ... 
31.
 */ 
32.
 $table_list=mysql_list_tables($dbs); 
33.
 if(!mysql_num_rows($table_list)){ 
34.
  echo "DB: $dbs<br>"
35.
  echo "Keine Tabellen in Datenbank $dbs"
36.
	echo "<hr>"
37.
 }else
38.
 			 echo "DB: $dbs<br>"
39.
			 /* 
40.
			 ... Datenbank auswählen ... 
41.
			 */ 
42.
			  $db_open=mysql_select_db($dbs); 
43.
				/* 
44.
				... Tabellen aus der Variablen extrahieren ...  
45.
				*/ 
46.
 			  while ($table=mysql_fetch_row($table_list)) { 
47.
				 /* 
48.
				 ... Suchausdruck aus Formular in Variablen ablegen ... 
49.
				 */ 
50.
				 $spalte=$_POST['spaltenname']; 
51.
				 $ausdruck=$_POST['ausdruck']; 
52.
				 echo "Inhalt Tabelle $table[0] - Suche in Spalte $spalte nach $ausdruck:<br><br>"
53.
				 /* 
54.
				 ... Tabellen abfragen und Ergebnis ausgeben. 
55.
				 */ 
56.
				 $query="select * from ".$table[0]." where $spalte='$ausdruck'"
57.
				 $result=mysql_query($query); 
58.
				 if(!$result) continue
59.
				 while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ 
60.
				  if($row) echo "<font color='red'>"
61.
				  echo implode(" ",$row)."<br><br>"
62.
					echo "<font color='black'>"
63.
64.
65.
				echo "<hr>"
66.
67.
 $i++; 
68.
69.
70.
?> 
71.
</body> 
72.
</html>
Gruß
Günni
Bitte warten ..
Mitglied: gechger
24.11.2008 um 10:42 Uhr
Hallo Günni,

das sieht schon vielversprechend aus. Das mit dem Admin muß ich erst mal checken. Die Datenbanken liegen auf einem Webserver bei Strato. Für eine Datenbank dort bedeutet das, daß immer ein eigener Benutzer mit eigenem Kennwort angelegt wird. Z.Bsp Datenbank db00012345 bekommt automatisch den User dbo00012345. Ob der Hauptadmin, mit dem ich die Datenbanken anlege, auch dort rein darf, weiss ich noch nicht.
Ein erster Test, den ich gerade gemacht habe, schlug fehl.

Aber erst mal vielen Dank für Deinen Ansatz. Damit komme ich schon sehr viel weiter.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: gechger
25.11.2008 um 15:44 Uhr
Hallo Günni

mit Deinen Ansätzen bin ich schon etwas weitergekommen. Zunächst mal das Script, wie ich es bisher angepasst habe


<!DOCTYPE HTML PUBLIC " -W3CDTD HTML 4.01 Transitiona lEN" "http:www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>In Datenbanken suchen</title>
<meta name="xxxxxx XXXXXX" content="xxxxx">
<meta content="XXXXX GmbH" name="GENERATOR">
</head>

<body bgcolor="#D3D3D3">
<font color="#291455"><font face="Verdana", "Arial">
<img src="head.jpg" alt="" height="92" width="885" border="0" livesrc="grafik/head.jpg">

<form method="post">
<table>
<tr>
<td>Mobilmaster suchen</td>
<td><input type="text" name="mm" /></td>
</tr>
<tr>
<td>Timeboy suchen</td>
<td><input type="text" name="tm" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="suchen" value="Abschicken" /></td>
</tr>
</table>
</form>


<?php

error_reporting(E_ALL); #zeig alle Fehler
ini_set('display_errors', '1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden

$mm_id=$_POST["mm"];
$tm_id=$_POST["tm"];

Kundendaten auslesen und in Array schreiben

$host = "XXXXXXX.XXXXXXX.XXX";
$user = "dboxxxxxxx";
$kennwort = "xxxxxxxxxxxxxxx";
$dbname = "dbxxxxxxxxx";
$tabelle ="kddaten";
$i=0;

$cldb = mysql_connect($host, $user, $kennwort);
or die(mysql_error());
mysql_select_db($dbname);
$sql=("select * from kddaten order by name");
$abfrage = mysql_db_query($dbname,$sql);
$kdarray=mysql_fetch_array($abfrage);


$count=count($kdarray);


while ($i < $count) {

$dbopen=mysql_connect($host, "$kdarray[anmeldung]", "$kdarray[kennwort]",$i);
mysql_select_db("$kdarray[dbname]");
$query=("select * from '$kdarray[tabelle]' where werte like '%blog=$mm_id%' or werte like '%ster=$tm_id%'");
$result=mysql_query($query);
?>
<font color="#291455">
<table rules=row>
<?
while($array = mysql_fetch_array($result)){
?>
<tr>
<td><?= $array[werte]; ?></td>
</tr>
<?
} // ENDE while($array = mysql_fetch_array($abfrage)){
?>
</table>
<?


$i++;
echo "$kdarray[id]","<br>","$kdarray[name]","<br>","$kdarray[anmeldung]","<br>","$kdarray[dbname]","<br>","$kdarray[kennwort]","<br>","$kdarray[tabelle]","<br>";
echo "count=$count","<br>";
echo "dbzugang=$dbopen","<br>";
echo "i=$i","<br>";
echo "query=$query","<br>";
}


?>
</body>
</html>


Ich bekomme nun eine Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pages/be/0e/d0006174/home/htdocs/php/datensuchen.php on line 68 welches dies ist:

while($array = mysql_fetch_array($result)){

und ich weiss nicht warum. Außerdem gibt mir meine ECHO immer nur den selben Kunden aus dem Array aus:

16
Axxxxx
dbo000xxxxx
db000xxxxx
axxxxxxxxxxxx
axxxxx
count=14
dbzugang=Resource id #4
i=2
query=select * from 'axxxxx' where werte like '%blog=1336%' or werte like '%ster=%'

der dbzugang und die VAriable i werden sauber hochgezählt, $count gibt mir auch sauber die 14x Einträge wieder, die Kundendaten aktualisieren sich aber nicht.

Hier könnte ich noch ein paar Tipps gebrauchen.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: Guenni
26.11.2008 um 21:14 Uhr
Hi gechger,

zu deiner Kundenabfrage:
Mit . . .
01.
<?php 
02.
$sql=("select * from kddaten order by name"); 
03.
$abfrage = mysql_db_query($dbname,$sql);  
04.
$kdarray=mysql_fetch_array($abfrage); 
05.
?>
. . . hast du genau einen Datensatz in $kdarray gespeichert.
Deshalb auch: Außerdem gibt mir meine ECHO immer nur den selben Kunden aus dem Array aus

Die Daten solltest du auch in einer Schleife abfragen und speichern:
01.
<?php 
02.
$i=0; 
03.
while($row=mysql_fetch_array($abfrage,MYSQL_ASSOC)){ 
04.
 $kunden_array[$i][anmeldung]=$row['kennwort']; 
05.
 $kunden_array[$i][passwort]=$row['passwort']; 
06.
 $i++; 
07.
08.
?>
Zur Anmeldung und Auswahl der Tabelle:

Da der Username dem Datenbanknamen entspricht und man mit Funktionen die Namen
der Tabellen abfragen kann, sind weitere Spalten wie $kdarray[tabelle], $kdarray[dbname]
usw. doch eigentlich unnötig.

Im folg. Script hab ich das Kunden-Array "von Hand" angelegt.
01.
<?php> 
02.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
03.
<html> 
04.
<head> 
05.
<title>Untitled</title> 
06.
</head> 
07.
<body> 
08.
<form action="multi-user-db-abfrage.php" method="post"
09.
Spalte <input type="text" name="spaltenname" /> 
10.
Suchbegriff <input type="text" name="ausdruck" /> 
11.
<input type="submit" name="cmd" value="Suche" /> 
12.
</form> 
13.
<? 
14.
/* 
15.
********************************** 
16.
Kundenarray aus Datenbank füllen 
17.
********************************** 
18.
Das Array hab ich jetzt mal erstellt 
19.
*/ 
20.
$kunden_array[0]=array("kunde" => "kennwort","pass" => "passwort"); 
21.
$kunden_array[1]=array("kunde" => "kennwort","pass" => "passwort"); 
22.
$cmd=$_POST['cmd']; 
23.
if($cmd){ 
24.
 $i=0; 
25.
 $count=count($kunden_array); 
26.
 while ($i < $count) { 
27.
  //Verbindung herstellen, Kundenname = Datenbankname ... 
28.
  $conn=mysql_connect("localhost",$kunden_array[$i][kunde],$kunden_array[$i][pass]); 
29.
  $db=mysql_select_db($kunden_array[$i][kunde]); 
30.
  /* 
31.
  ... alle Tabellen der Datenbank in einer Variablen ablegen ... 
32.
  */ 
33.
  $table_list=mysql_list_tables($kunden_array[$i][kunde]); 
34.
  if(!mysql_num_rows($table_list)){ 
35.
   echo "DB: ".$kunden_array[$i][kunde]."<br><br>"
36.
   echo "Keine Tabellen in Datenbank ".$kunden_array[$i][kunde]; 
37.
	 echo "<hr>"
38.
  }else
39.
 			  echo "DB: ".$kunden_array[$i][kunde]."<br><br>"
40.
			  while ($table=mysql_fetch_row($table_list)) { 
41.
				 /* 
42.
				 ... Suchausdruck aus Formular in Variablen ablegen ... 
43.
				 */ 
44.
				 $spalte=$_POST['spaltenname']; 
45.
				 $ausdruck=$_POST['ausdruck']; 
46.
				 echo "Inhalt Tabelle $table[0] - Suche in Spalte $spalte nach $ausdruck:<br><br>"
47.
				 /* 
48.
				 ... Tabellen abfragen und Ergebnis ausgeben. 
49.
				 */ 
50.
				 $query="select * from ".$table[0]." where $spalte='$ausdruck'"
51.
				 $result=mysql_query($query); 
52.
				 if(!$result) continue
53.
				 while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ 
54.
				  if($row) echo "<font color='red'>"
55.
				  echo implode(" ",$row)."<br><br>"
56.
					echo "<font color='black'>"
57.
58.
59.
				mysql_close($conn); 
60.
				echo "<hr>"
61.
62.
  $i++; 
63.
64.
65.
?> 
66.
</body> 
67.
</html> 
68.
?>
Gruß
Günni
Bitte warten ..
Mitglied: gechger
27.11.2008 um 12:36 Uhr
Hallo Günni,

vielen Dank erstmal für Deine Bemühung.

habe Schritt für Schritt das Script neu aufgebaut und getestet, und auch festgestellt, daß das Kundenarray nicht gefüllt wurde. Mein Ansatz sieht jetzt so aus:

01.
 
02.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
03.
<html> 
04.
<head> 
05.
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> 
06.
<title>In Datenbanken suchen</title> 
07.
<meta name="Christof Gersky" content="MobilZeit GmbH"> 
08.
<meta content="MobilZeit GmbH" name="GENERATOR"> 
09.
</head> 
10.
 
11.
<body bgcolor="#D3D3D3"> 
12.
<font color="#291455"><font face="Verdana", "Arial"> 
13.
<img src="head.jpg" alt="" height="92" width="885" border="0" livesrc="grafik/head.jpg"> 
14.
 
15.
<form method="post"> 
16.
 <table> 
17.
 <tr> 
18.
 <td>Mobilmaster suchen</td> 
19.
 <td><input type="text" name="mm"value="00000" /></td> 
20.
 </tr> 
21.
 <tr> 
22.
 <td>Timeboy suchen</td> 
23.
 <td><input type="text" name="tm" value="00000"/></td> 
24.
 </tr> 
25.
 <tr> 
26.
 <td colspan="2"><input type="submit" name="suchen" value="Abschicken" /></td> 
27.
 </tr> 
28.
 </table> 
29.
 </form> 
30.
 
31.
<?php 
32.
 
33.
//error_reporting(E_ALL); #zeig alle Fehler 
34.
//ini_set('display_errors', '1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden 
35.
 
36.
$mm_id=$_POST["mm"]; 
37.
$tm_id=$_POST["tm"]; 
38.
 
39.
//Kundendaten auslesen und in Array schreiben 
40.
 
41.
  $host = "hxxx.xxx.net"; 
42.
  $user = "dboxxxxxx"; 
43.
  $kennwort = "xxxxxx"; 
44.
  $dbname = "dbxxxxxxx"; 
45.
  $tabelle ="kddaten"; 
46.
    
47.
	$dbconnect = mysql_connect($host, $user, $kennwort); // or die(mysql_error()); 
48.
	mysql_select_db($dbname); 
49.
	$sql=("SELECT * FROM kddaten"); 
50.
	$abfrage = mysql_query($sql);	 
51.
 
52.
//Kundendaten ins Array schreiben 
53.
 while($temp=mysql_fetch_assoc($abfrage)){ 
54.
	$kdarray[] = $temp; 
55.
  		 
56.
57.
 
58.
//Leeren des Speichers 
59.
	mysql_free_result($temp); 
60.
	mysql_close($db_connect);		 
61.
  
62.
//Durchläuft das Kundenarray, verbindet sich mit der entsprechenden Datenbank und sucht nach den Begriffen 	 
63.
  foreach($kdarray as $key => $kdanmeldung){ 
64.
  	$dbconnect=mysql_connect($host, $kdanmeldung[anmeldung], $kdanmeldung[kennwort]); 
65.
 	$sql1=("select werte from $kdanmeldung[tabelle] where werte like '%blog=$mm_id%' or werte like '%ster=$tm_id%'"); 
66.
 	$result=mysql_query($sql1); 
67.
 	while($temp=mysql_fetch_assoc($result)){ 
68.
 	$ausgabe[]=$temp; 
69.
70.
                      mysql_free_result($temp); 
71.
  	mysql_close($db_connect);	 
72.
73.
  	 
74.
//Ausgabe der Informationen 
75.
  	echo "<pre>"; 
76.
  	print_r ($kdarray); 
77.
  	echo "</pre>"; 
78.
  	 
79.
  	echo "<pre>"; 
80.
  	print_r ($ausgabe); 
81.
  	echo "</pre>"; 
82.
		 
83.
mysql_close;  	 
84.
	 
85.
?> 
86.
 </body> 
87.
 </html>

Ich bekomme so schon Ausgaben, die wertvoll sind. Aber ich bekomme auch Warnmeldungen, die ich nicht verstehe:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /pages/be/0e/d0006174/home/htdocs/php/datensuchen.php on line 64

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /pages/be/0e/d0006174/home/htdocs/php/datensuchen.php on line 67

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /pages/be/0e/d0006174/home/htdocs/php/datensuchen.php on line 68

Trotzdem erhalte ich Ergebnisse. Allerdings noch nicht so, wie ich sie eigentlich bräuchte. Ich will nämlich noch wissen, in welcher Datenbank die gesuchte Information gefunden wird. Zur Zeit bekomme ich zwar den gesuchten Begriff ausgegeben,

Array
(
[werte] => Array
(
[werte] => 2008-11-27_08:09:38 table=SE sTYP=AN sTER=5555 sDAT=2008-11-27_08:09:17 sPER=0004392537941 sPRO=12163 sEIN= sTAT= sLBS= sFIN= sBER= sSTA= sAUF= sZON=

)

)

aber ich erkenne nicht, aus welcher Datenbank er kommt.
GIbt es dafür auch einen Ansatz?

Schöne Grüße
Christof

PS: wie kriegt man das eigentlich hin, daß in den Scripten der richtige Farbcode erscheint?
Laut Hilfe benutze ich "<code type php>", aber es wird nicht farbig.
Bitte warten ..
Mitglied: gechger
28.11.2008 um 15:00 Uhr
Hallo Forum,

vielen Dank an Locke und Günni, die mir bei der Lösung meiner Aufgabe wirklich gut geholfen haben.
Dies nun ist mein Script, welches mir die gewünschten Informationen liefert:

01.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
02.
<html> 
03.
<head> 
04.
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> 
05.
		<title>In Datenbanken suchen</title> 
06.
<meta name="Christof Gersky" content="X GmbH"> 
07.
<meta content="X GmbH" name="GENERATOR"> 
08.
</head> 
09.
 
10.
<body bgcolor="#D3D3D3"> 
11.
		<font color="#291455"><font face="Verdana", "Arial"> 
12.
		<img src="head.jpg" alt="" height="92" width="885" border="0" livesrc="grafik/head.jpg"> 
13.
 
14.
 
15.
<form action="datensuchen.php" method="post"> 
16.
 <table> 
17.
 <tr> 
18.
 <td>Mobilmaster suchen</td> 
19.
 <td><input type="text" name="mm"  size = "4" /></td> 
20.
 </tr> 
21.
 <tr> 
22.
 <td>Timeboy suchen</td> 
23.
 <td><input type="text" name="tm"  size = "4"/></td> 
24.
 </tr> 
25.
 <tr> 
26.
 <td colspan="2"><input type="submit" name="suchen" value="Abschicken" /></td> 
27.
 </tr> 
28.
 </table> 
29.
 </form> 
30.
<?php 
31.
 
32.
//error_reporting(E_ALL); #zeig alle Fehler 
33.
//ini_set('display_errors', '1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden 
34.
 
35.
//Zugangsdaten zur Datenbank, in der meine Kundedaten stehen  
36.
 
37.
 $host = "hxxxxx.xxxxx.net"; 
38.
  $user = "dboxxxxx"; 
39.
  $kennwort = "xxxxx"; 
40.
  $dbname = "dbxxxxx"; 
41.
  $tabelle ="kddaten"; 
42.
    
43.
//Verbindung zu miner Kundetabelle herstellen	 
44.
 
45.
                    $dbconnect = mysql_connect($host, $user, $kennwort); // or die(mysql_error()); 
46.
	mysql_select_db($dbname); 
47.
	$sql="SELECT * FROM kddaten order by 'name' "; 
48.
	$result = mysql_query($sql) ; 	 
49.
 
50.
//Schreiben aller Kunden-Zugangsdaten in ein Array 
51.
 
52.
	while($temp=mysql_fetch_assoc($result)){ 
53.
		$kdarray[]=$temp; 
54.
55.
	 mysql_close($dbconnect); 
56.
 
57.
//Prüfen, ob überhaupt etwas eingegeben wurde 
58.
 
59.
if(isset($mm_id) || isset($tm_id)){  
60.
 
61.
//Schleife, die aus dem Kunden-Array die Zugangsdaten holt und sich nacheinander in die Datenbanken einwählt 
62.
  
63.
 foreach($kdarray as $key => $kunden_array) { 
64.
 
65.
 $conn=mysql_connect($host, $kunden_array[anmeldung], $kunden_array[kennwort]); 
66.
 $db=mysql_select_db($kunden_array[dbname]); 
67.
  
68.
	$mm_id=$_POST["mm"]; 
69.
	$tm_id=$_POST["tm"]; 
70.
	 
71.
 if(empty($tm_id)){				  
72.
	 $query="select werte from $kunden_array[tabelle] where werte like '%blog=$mm_id%' "; 
73.
74.
	 if(empty($mm_id)){ 
75.
	 $query="select werte from $kunden_array[tabelle] where werte like '%ster=$tm_id%' "; 
76.
	 }		  
77.
	 $result=mysql_query($query); 
78.
	 $row=mysql_fetch_assoc($result); 
79.
	 
80.
//Wenn einer der beiden Suchbegriffe gefunden wurde, wird der entsprechende Kundenname ausgegeben 
81.
 
82.
if(!$row) continue;{ 
83.
	if(empty($tm_id)){		 
84.
echo "MM: $mm_id war im Einsatz bei $kunden_array[name]<br><br>"; 
85.
86.
	elseif(empty($mm_id)){ 
87.
echo "TM:$tm_id war im Einsatz bei $kunden_array[name]<br><br>"; 
88.
	}		 
89.
90.
	}	 
91.
				 
92.
				mysql_close($conn); 
93.
				echo "<hr>"; 
94.
95.
?> 
96.
</body> 
97.
 
98.
</html>
Meine Ausgabe sieht dann so aus:

MM: 1497 war im Einsatz bei XXX

Nochmal vielen lieben Dank für Eure Hilfe
Schöne Grüße
Christof
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
PHP
MySQL-Abfrage mit php: Wert + true bzw. false (2)

Frage von tomolpi zum Thema PHP ...

Batch & Shell
gelöst Findstr - code für schwieriger Abfrage gesucht (9)

Frage von reissaus73 zum Thema Batch & Shell ...

PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...