Hi @ll,
ich habe ein Problem mit der dynamischen Generierung von Variablen.
In dem SQL-Statement "$sql=SELECT" usw. moechte ich hinter "Wissenschaftler.W_Name" "$_W_Land" und "$W_Them" generieren, wenn dies relevant ist, sprich die Bedingung "Land ausgewaehlt" und "Themenbereich ausgewaehlt" erfuellt sind.
Im Prinzip muesste das funktionieren, aber ich kann den Fehler einfach nicht finden.
Kann mir da ggf. bitte jemand von euch helfen?
Nachstehend der Code:
PHP-Code:
<html>
<head>
</head>
<body>
<?
if (isset($HTTP_POST_VARS['submit']) AND $HTTP_POST_VARS['submit'] == "submit") {
if (isset($HTTP_POST_VARS['land'])) {
$bla2 = array();
$bla2 = $HTTP_POST_VARS['land'];
while (list($key1, $value) = each ($bla2)) {
if ($key1 == "0" && $key != "0") {
$W_Laender_Land = "W_Laender.Land = ".$value;
} else {
$W_Laender_Land .= " OR W_Laender.Land =".$value;
}
if ($key1 == "0") {
$LEFT_JOIN_W_Laender = "LEFT JOIN W_Laender ON (Wissenschaftler.Wissenschaft_ID = W_Laender.Wissenschaft_ID) ";
$W_La = ", W_Laender.Land ";
}
}
//Block Laender fuer Verknuepfung Klammern
$W_Laender_Land = "(".$W_Laender_Land.")";
} //end-if land
if (isset($HTTP_POST_VARS['thember'])) {
$bla1 = array();
$bla1 = $HTTP_POST_VARS['thember'];
while (list($key, $value) = each ($bla1)) {
if ($key == "0" && $key1 == "0") {
$W_Thember_Thember = "OR W_Thember.Thember = ".$value;
}
if ($key == "0" && $key1 != "0") {
$W_Thember_Thember = "W_Thember.Thember =".$value;
} else {
$W_Thember_Thember .= " OR W_Thember.Thember =".$value;
}
if ($key == "0") {
$LEFT_JOIN_W_Thember = "LEFT JOIN W_Thember ON (Wissenschaftler.Wissenschaft_ID = W_Thember.Wissenschaft_ID)";
$_W_Them = ", W_Thember.Thember";
}
}
//Block Themenbereich fuer Verknuepfung Klammern, Land und Themenbereich mit AND verknuepfen
$W_Thember_Thember = ($W_Laender_Land != "" ? "AND (" : "(").$W_Thember_Thember.")";
} //end-if thember
} //end-if submit
$sql="SELECT DISTINCT Wissenschaftler.Wissenschaft_ID, Wissenschaftler.W_Name".$_W_Land
." ".$W_Them." FROM Wissenschaftler ".$LEFT_JOIN_W_Laender." ".$LEFT_JOIN_W_Thember
.($W_Laender_Land != "" || $W_Thember_Thember != "" ? " WHERE ".$W_Laender_Land." ".$W_Thember_Thember : "")
." ORDER BY Wissenschaftler.W_Name";
?>
<form action="komplexe_abfrage_genie_poelitz.php" method="post">
<table>
<tr>
<td>
Länder:
<select multiple size="11" name="land[]">
<option value="100000"> Deutschland
<option value="100001"> Bulgarien
<option value="100002"> Estland
<option value="100003"> Lettland
<option value="100004"> Litauen
<option value="100005"> Polen
<option value="100006"> Rumänien
<option value="100007"> Slowakei
<option value="100008"> Slowenien
<option value="100009"> Tschechien
<option value="100010"> Ungarn
</select>
</td>
<td>
Themenbereiche:
<select multiple size="22" name="thember[]">
<option value="91001"> Bürgerbeziehungen
<option value="91002"> Dienstleistungen
<option value="91003"> EU-Förderprogramme
<option value="91004"> Geistes- und Sozialwissenschaften, Geschichte
<option value="91005"> Gemeinde, Städte und Kreispartnerschaften
<option value="91006"> Geographie
<option value="91007"> Handel
<option value="91008"> Handwerk
<option value="91009"> Industrie und Produzierendes Gewerbe
<option value="91010"> Ingenieurwissenschaften
<option value="91011"> Kultur und Kunst
<option value="91012"> Kulturwissenschaften
<option value="91013"> Land- und Forstwirtschaft
<option value="91014"> Naturwissenschaftliche Grundlagenforschung
<option value="91015"> Rechtswissenschaften
<option value="91016"> Stadt- und Regionalentwicklung / Strukturpolitik
<option value="91017"> Tourismus
<option value="91018"> Transport und Logistik
<option value="91019"> Umweltwissenschaften
<option value="91020"> Verwaltung / Fortbildung
<option value="91021"> Wirtschaftsförderung
<option value="91022"> Wirtschaftswissenschaften
</select>
</td>
</tr>
<tr>
<td>
<input type="submit" name="submit" value="submit"> <input type="reset">
</td>
</tr>
</table>
</form>
<?
echo $sql;
?>
</body>
</html>
Vielen Dank!
Gruss,
Lage