Moin nochmal.
Hab ich mich schon für die Tipps bedankt?
Also Danke ;-)
Ich hab jetzt noch einige Änderungen vorgenommen. Ich habe einen zweiten Parameter in SucheGastgeber.php eingefügt, damit ZWEI Kriterien ausgewählt werden.
Diese werden auch wunderbar übergeben und die Ausgabe funzt auch.
Kleines Problem: Es geht NICHT, wenn ich den ersten anwähle, den zweiten aber nicht.
Also nochmal:
beide Felder nichts ausgewählt = es werden alle angezeigt.
beide Felder etwas ausgewählt = es werden alle gemäß der Auswahl angezeigt
Erstes Feld nicht ausgewählt, zweites augewählt = es werden alle gemäß der Auswahl angezeigt
Erstes Feld ausgewählt, zweites NICHTS ausgewählt = es werden ALLE angezeigt (und hier ist der Fehler, denn mir sollten nur die angezeigt werden, gemäß Auswahl).
Und hier der Code:
SucheGastgeber.php
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<? include "DBConnect.inc.php" ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Suchanfrage Gastgeber</title>
</head>
<body>
<form action="SucheGastgeberErg.php" method="GET">
<table border="0" width="429px">
<tr>
<td width="50%">Kategorie =</td>
<td width="50%"><select name="Kategorie">
<option value="%"
selected>- bitte auswählen - </option>
<?
// Verbindung zur Datenbank aufbauen
Conn();
mysql_select_db($DB,$Conn);
$strSQL="SELECT DISTINCTROW Gastgeberverzeichnis.Kategorie FROM "."Gastgeberverzeichnis ORDER BY Kategorie";
$Erg=mysql_query($strSQL);
while ($Zeile=mysql_fetch_array($Erg))
{
echo "<option value=\"$Zeile[0]\">$Zeile[0]</option>";
}
mysql_free_result($Erg);
DisConn();
?>
</select></td>
</tr>
</tr>
<tr>
<td> </td>
<td>UND</td>
</tr>
<tr>
<td width="50%">Urlaubsregion =</td>
<td width="50%"><select name="Region">
<option value="%" selected>- bitte auswählen - </option>
<?
//Verbindung zur Datenbank aufbauen
Conn();
mysql_select_db($DB,$Conn);
$str2SQL="SELECT DISTINCTROW Gastgeberverzeichnis.Region FROM "."Gastgeberverzeichnis ORDER BY Region";
$Erg2=mysql_query($str2SQL);
while ($Zeile2=mysql_fetch_array($Erg2))
{
echo "<option value=\"$Zeile2[0]\">$Zeile2[0]</option>";
}
mysql_free_result($Erg2);
DisConn();
?>
</select>
</td>
</tr>
<tr>
<td><input name="submit" type="submit"
title="Suchen" value="Suche starten">
</td>
<td> </td>
</tr>
</table>
</form>
</body>
</html>
und hier die neue SucheGastgeberErg.php
PHP-Code:
<? include "DBConnect.inc.php" ?>
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Datenbankabfrage Gastgeber</title>
</head>
<body>
<table border="0">
<?
import_request_variables ("gb","frm_");
if ($frm_Kategorie!="%")
{
//Kategorie ausgewählt
$Bed1="Kategorie=\"$frm_Kategorie\"";
}
else
{
$Bed1="";
}
if ($frm_Region!="%")
{
//Region ausgewählt
$Bed2="(Region=\"$frm_Region\")";
}
else
{
$Bed2="";
}
if (($Bed1!="") && ($Bed2!=""))
{
$Bed=" WHERE ($Bed1 AND $Bed2)";
}
elseif ($Bed2!="")
{
$Bed="WHERE $Bed2";
}
elseif (($Bed2=="") && ($Bed1==""))
{
$Bed="";
}
$strSQL="SELECT * FROM Gastgeberverzeichnis $Bed";
# TESTAUSGABE
# Hier siehst Du selbst, dass bei gewaehlter Kategorie was fehlt...
echo $strSQL;
//Verbindung zur Datenbank aufbauen
Conn();
mysql_select_db($DB,$Conn);
# Mal schauen was MySQL dazu meint
#$RS=mysql_query($strSQL,$Conn);
$RS=mysql_query($strSQL,$Conn) or die(mysql_error());
//Daten ausgeben
while($zeile=mysql_fetch_array($RS,MYSQL_ASSOC))
{
echo "<tr><td>".getZelle($zeile["Name"],$strFormat)."</td></tr>";
}
mysql_free_result($RS);
DisConn();
?>
</table>
</body>
</html>
Wie muß ich die Bedingungen ändern, damit mir auch bei der Kombination Bed1 ausgewählt, Bed2 "nichts" - etwas angezeigt wird. Hier muß irgend eine if Anweisung falsch sein...