Schleife in Schleife

Watusimann

Erfahrenes Mitglied
Guten Morgen,

Ich würde gern ein Suchscript basteln und steh vor einem Problem, wo ich keine Antwort finde.
Die erste Schleife läuft wunderbar durch, jedoch am Beginn der 2. Schleife gibt er ein Wert zurück mit dem ich nichts anfangen kann.

Er listet die erste Tabelle die durchsuchten Spalten der MySQL mit dem "Suchtreffern". Dann sollte die for-Schleife von vorn anfangen ... eigentlich
Jedoch listet mir das Script zwar den Tabellennamen auf jedoch steht dann

Column : Arrayid

Unknown column 'Arrayid' in 'where clause'

Die Spalte "id" scheint ja gefunden zu werden, aber wieso wird ein array davor gesetzt? Könnte mir bitte jemand unter die Arme greifen?

Hier der Code:
PHP:
$result_tables = mysql_query("SHOW TABLES FROM ".$db_name , $db) or die (mysql_error());
while ($row_tables=mysql_fetch_row($result_tables))
{
	$tables .= $row_tables[0]."+";
}
$tables = explode("+", $tables);
for ($x = 0; $x < count($tables); $x++)
{
	$result_columns = mysql_query("SHOW COLUMNS FROM ".$tables[$x] ." FROM ".$db_name) or die (mysql_error());
	while ($row_columns=mysql_fetch_row($result_columns))
    {
		$search_columns .= $row_columns[0]."µ";
	}	

	print "<h4>Tabelle : ".$tables[$x]."</h4>";
		
	$search_columns = explode("µ", $search_columns);
	for ($s = 0; $s < (count($search_columns)-1); $s++)
	{
		print "<h5>Column : ".$search_columns[$s]."</h5>";
			
		$result_search = mysql_query("	SELECT 
												* 
										FROM 
												". $tables[$x] ." 
										WHERE 
												".$search_columns[$s]." 
										LIKE 
												'%".$searchterm."%' 
									") or die (mysql_error()); 
									
		while ($row_search=mysql_fetch_array($result_search))
		{
			print $search_columns[$s] ." - ".$row_search[$search_columns[$s]]."<br />";
		}
	}		
}

Oder habe ich einen falschen Gedankengang?
 
Zuletzt bearbeitet:
ok ... Ich hab das den SQL Abruf umgeschrieben und die for-schleife dementsprechend geändert. Jetzt funktioniert es ...

Hier der Code:
PHP:
$result_tables = mysql_query("SHOW TABLES FROM ".$db_name , $db) or die (mysql_error());
while ($row_tables=mysql_fetch_array($result_tables))
{
	$tables .= "+".$row_tables[0]; // GEÄNDERT
}
$tables = explode("+", $tables);
for ($x = 1; $x < count($tables); $x++) // GEÄNDERT
{
	$result_columns = mysql_query("SHOW COLUMNS FROM ".$tables[$x] ." FROM ".$db_name) or die (mysql_error());
	while ($row_columns=mysql_fetch_array($result_columns))
    {
		$search_columns .= "µ".$row_columns[0]; // GEÄNDERT
	}	

	print "<h4>Tabelle : ".$tables[$x]."</h4>";
		
	$search_columns = explode("µ", $search_columns);
	for ($s = 1; $s < count($search_columns); $s++) // GEÄNDERT
	{
		print "<h5>Column : ".$search_columns[$s]."</h5>";
			
		$result_search = mysql_query("	SELECT 
												* 
										FROM 
												". $tables[$x] ." 
										WHERE 
												".$search_columns[$s]." 
										LIKE 
												'%".$searchterm."%' 
									") or die (mysql_error()); 
									
		while ($row_search=mysql_fetch_array($result_search))
		{
			print $search_columns[$s] ." - ".$row_search[$search_columns[$s]]."<br />";
		}
	}		
}
 
Zurück