solala123
Erfahrenes Mitglied
Hallo zusammen,
habe mich wieder mal festgebissen.
Die Ausgabe meiner Datenbank erfolgt mit einem Formular. Es sind 6 Felder und die sind momentan statisch mit OR verknüpft.
Ich möchte aber flexiebel werden. D.h. nur die Felder, bei denen etwas eingetragen ist, soll mit AND verknüpft werden.
Hab schon etwas im Netz gefunden aber so richtig funktioniert es nicht. Es werden alle Daten der Datenbank ausgegeben!
hier mal der Code:
und hier mein Formular:
vielen Dank
Gruß
Rainer
habe mich wieder mal festgebissen.
Die Ausgabe meiner Datenbank erfolgt mit einem Formular. Es sind 6 Felder und die sind momentan statisch mit OR verknüpft.
Ich möchte aber flexiebel werden. D.h. nur die Felder, bei denen etwas eingetragen ist, soll mit AND verknüpft werden.
Hab schon etwas im Netz gefunden aber so richtig funktioniert es nicht. Es werden alle Daten der Datenbank ausgegeben!
hier mal der Code:
PHP:
require_once ('konfiguration-ResBar.php');
$garten = $_POST['garten'];
$kueche = $_POST['kueche'];
$plz = $_POST['plz'];
$ort = $_POST['ort'];
$behindert = $_POST['behindert'];
$nacht = $_POST['nacht'];
echo "$garten";
echo "$kueche";
echo "$plz";
echo "$ort";
echo "$behindert";
echo "$nacht";
//if (isset($_POST["sub"]))
//{ // if Klammer auf und ganz am Schluß Klammer zu
$sql="SELECT * FROM ResBar WHERE ";
if ($_POST['plz']!=''){ // normales Input-Text-Feld
$sql.="plz='".mysql_real_escape_string($_POST['plz'])."' AND ";}
if ($_POST['kueche']!='') { // dito
$sql.="kueche='".mysql_real_escape_string($_POST['kueche'])."' AND ";}
// weitere Felder
$sql.="1=1"; // Damit kein SQL-Fehler entsteht
$db_erg=mysqli_query($sql );
echo "$sql";
// $query = sprintf(
// "SELECT * FROM ResBar WHERE garten='%s' AND kueche='%s' OR plz='%s' OR ort='%s' OR behindert='%s' OR nacht='%s' ",
// mysqli_real_escape_string($db_link, $garten),
// mysqli_real_escape_string($db_link, $kueche),
// mysqli_real_escape_string($db_link, $plz),
// mysqli_real_escape_string($db_link, $ort),
// mysqli_real_escape_string($db_link, $behindert),
// mysqli_real_escape_string($db_link, $nacht)
// );
//
$db_erg = mysqli_query( $db_link, $query );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysqli_error());
}
// }// Klammer von submit
echo "<table width='100%' class='altrowstable' id='alternatecolor' >
<tbody>
<td background='images/leiste-schatten-ausgabetabelle.gif' width='5%' > Bild </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'><a href=\" Anzeige.php?Anzeige=$Lokalname\">Lokalname</td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Küche </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Garten </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Ruhetage </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Über- <br>nachtung </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Behinderten- <br>freundlich </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Telefon </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Postleitzahl </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Ort </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Straße </td>
<td background='images/leiste-schatten-ausgabetabelle.gif'> Homepage </td>
";
while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $zeile['bild'] . "</td>";
echo "<td>". $zeile['restaurantname'] . "</td>";
echo "<td>". $zeile['kueche'] . "</td>";
echo "<td>". $zeile['garten'] . "</td>";
echo "<td>". $zeile['montag'] .' '. $zeile['dienstag'] .' '. $zeile['mittwoch'] . ' '. $zeile['donnerstag'] . ' '. $zeile['freitag'] .' ' . $zeile['samstag'] . ' '. $zeile['sonntag'] . "</td>";
echo "<td>". $zeile['nacht'] . "</td>";
echo "<td>". $zeile['behindert'] . "</td>";
echo "<td>". $zeile['telefon'] . "</td>";
echo "<td>". $zeile['plz'] . "</td>";
echo "<td>". $zeile['ort'] . "</td>";
echo "<td>". $zeile['strasse'] . "</td>";
// Escaping für Kontextwechsel nach HTML
$e = function ($s) { return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); };
//homepage Anzeige als Link
echo '<td><a href="' . $zeile['homepage'] . '">' . $zeile['homepage'] . '</a></td>';
echo "</tr>";
}
mysqli_free_result( $db_erg );
echo "</tbody></table>";
echo " "; // Leerzeile
und hier mein Formular:
HTML:
<form action="Anzeige.php" method="post" name="finden" >
<fieldset><legend><span class="Stil1">Suchkriterien</span></legend>
<table width="100%" border="0" cellpadding="2" cellspacing="0" bgcolor="#2F2F2F"><tr><td colspan="3" ><table width="100%" border="0" cellpadding="2" cellspacing="0" bgcolor="#EBC09A">
<tr>
<th colspan="5" scope="col"><img src="images/leiste-schatten-oben-braun.gif" width="100%" height="24" /></th>
</tr>
<tr>
<td width="1%"> </td>
<td width="25%"><span class="Stil3">Plz. mind. 3 Stellen</span></td>
<td width="26%"><span class="Stil3">Ort</span></td>
<td colspan="2"> </td>
</tr>
<tr>
<td> </td>
<td>
<input name="plz" id="plz" type="text" size="6" maxlength="6" /> </td>
<td colspan="3">
<input name="ort" type="text" size="40" maxlength="38" /> </td>
</tr>
<tr>
<td><span class="Stil2"></span></td>
<td width="25%"><span class="Stil3">Art der Küche</span></td>
<td width="25%"><span class="Stil3">Garten</span></td>
<td width="25%"><span class="Stil3">Behinderten gerecht</span></td>
<td width="25%"><span class="Stil3">Übernachtung möglich</span></td>
</tr>
<tr>
<td> </td>
<td>
<select name="kueche" id="kueche" size="1" maxlength="30" >
<option> </option>
<option>fränkisch</option>
<option>deutsch</option>
<option>italienisch</option>
</select> </td>
<td>
<select name="garten" id="garten" size="1" maxlength="5" >
<option> </option>
<option>ja</option>
<option>nein</option>
</select> </td>
<td>
<select name="behindert" id="behindert" size="1" maxlength="5" >
<option> </option>
<option>ja</option>
<option>nein</option>
</select> </td>
<td>
<select name="nacht" id="nacht" size="1" maxlength="5" >
<option> </option>
<option>ja</option>
<option>nein</option>
</select> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td colspan="2"> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="5" >
<input type="submit" name="sub" value="suchen" />
<input type="reset" value="Löschen" onClick="return confirm('Wirklich Eingaben verwerfen?')" /></td>
</tr>
<tr>
<td colspan="5">
<img src="images/leiste-schatten-unten-braun.gif" width="100%" height="24" /> </td>
</tr>
</table></td>
</tr>
</table>
</fieldset>
</form>
vielen Dank
Gruß
Rainer