Hallo Leute!
Ich beschäftige mich seit kurzem mit PHP und Mysql. Zu Übungs-und Lernzwecken habe ich eine kleine Website erstellt, die nur auf meinen Pc unter XAMPP 1.7.3 laufen soll und nie ins Web gestellt wird. Daher auch das "SELECT *".
Mein Ziel:
Aus einer Datenbank sollen Tabellen (idente Struktur) ausgelesen und in einer gemeinsamen HTML-Tabelle dargestellt werden.
Mein Code für die Abfrage sieht so aus:
Das funktioniert auch.
Da noch neue Tabellen hinzukommen werden, möchte ich den Abfragestring dynamisch erstellen.
Dazu lasse ich mir die Namen der Tabellen ausgeben und versuche, die Abfrage mit folgendem Code hinzubekommen:
Mein Problem:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"(SELECT * from austria WHERE stern=3 AND richtung='L')UNION (SELECT * FROM daen' at line 1
Der String schaut mit echo ausgegeben für mich richtig aus:
Bin momentan ratlos. Für Tipps wäre ich sehr dankbar. Merci im voraus
Ich beschäftige mich seit kurzem mit PHP und Mysql. Zu Übungs-und Lernzwecken habe ich eine kleine Website erstellt, die nur auf meinen Pc unter XAMPP 1.7.3 laufen soll und nie ins Web gestellt wird. Daher auch das "SELECT *".
Mein Ziel:
Aus einer Datenbank sollen Tabellen (idente Struktur) ausgelesen und in einer gemeinsamen HTML-Tabelle dargestellt werden.
Mein Code für die Abfrage sieht so aus:
PHP-Code:
$sql="(SELECT * from austria WHERE stern=$stern AND richtung='$L_S')
UNION (SELECT * from dax_1 WHERE stern=$stern AND richtung='$L_S')
UNION (SELECT * from dax_2 WHERE stern=$stern AND richtung='$L_S')
UNION (SELECT * from finnland WHERE stern=$stern AND richtung='$L_S')
UNION (SELECT * from spanien WHERE stern=$stern AND richtung='$L_S')
UNION (SELECT * from frankreich_1 WHERE stern=$stern AND richtung='$L_S')";
//------------------------------------------------------------------------------------------*/
//--------DATENBANKABFRAGE-Ausgabe------------------
$result=mysql_query($sql);
echo "<br><b>error meldung von DATENBANKABRFAGE(Ausgabe):</b><br> ";
print mysql_error();
Da noch neue Tabellen hinzukommen werden, möchte ich den Abfragestring dynamisch erstellen.
Dazu lasse ich mir die Namen der Tabellen ausgeben und versuche, die Abfrage mit folgendem Code hinzubekommen:
PHP-Code:
$htp ="SHOW TABLES FROM $datenbank";
$namen=mysql_query($htp);
print mysql_error();
//------------Array aus den Tabellennamen erstellen
$tabelle=array();
while ($row = mysql_fetch_row($namen)) {
array_push($tabelle,$row);
}
//-----------Array mit UNION Strings erstellen
for($i=1; $i <count($tabelle); $i++)
{
$hallo[]= "UNION (SELECT * FROM " .$tabelle[$i][0]." WHERE stern=$stern AND richtung='$L_S')<br>";
}
$test_sql=implode($hallo);
//---------------Abfrage zusammenstöpseln
$sql_1="(SELECT * from austria WHERE stern=$stern AND richtung='$L_S')";
$sql_2= "\"".$sql_1.$test_sql."\"";
//--------DATENBANKABFRAGE-Ausgabe------------------
$result=mysql_query($sql_2);
echo "<br><b>error meldung von DATENBANKABRFAGE(Ausgabe):</b><br> ";
print mysql_error();
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"(SELECT * from austria WHERE stern=3 AND richtung='L')UNION (SELECT * FROM daen' at line 1
Der String schaut mit echo ausgegeben für mich richtig aus:
PHP-Code:
"(SELECT * from austria WHERE stern=3 AND richtung='L')UNION (SELECT * FROM daenemark WHERE stern=3 AND richtung='L')
UNION (SELECT * FROM dax_1 WHERE stern=3 AND richtung='L')
UNION (SELECT * FROM dax_2 WHERE stern=3 AND richtung='L')
UNION (SELECT * FROM finnland WHERE stern=3 AND richtung='L')
UNION (SELECT * FROM frankreich_1 WHERE stern=3 AND richtung='L')
UNION (SELECT * FROM frankreich_2 WHERE stern=3 AND richtung='L')
UNION (SELECT * FROM holland WHERE stern=3 AND richtung='L')
UNION (SELECT * FROM spanien WHERE stern=3 AND richtung='L')
"
Kommentar