我有一个关于MySQL查询的过滤器。我可以按照自己的意愿过滤条目。但是在过滤之后,我无法将值设置为选项值上的选定值。我的代码;
<form method="POST">
<label>İller:</label><select style="width:150px" name="iller">
<OPTION VALUE=''>Hepsi</OPTION>
<option value="İstanbul">İstanbul</option>
<option value="Ankara">Ankara</option>
<option value="Bolu">Bolu</option>
</select>
<label>Bölümler:</label><select style="width:150px" name="bolum">
<OPTION VALUE=''>Hepsi</OPTION>
<option value="Makine Mühendisliği">Makine Mühendisliği</option>
<option value="Endüstri Mühendisliği">Endüstri Mühendisliği</option>
<option value="Elektrik Mühendisliği">Elektrik Mühendisliği</option>
</select>
<input class="button" type="submit" name="submit" value="Filtrele" /></td>
</form>
<?php
$db_connection = mysqli_connect($host,$user,$password,$dbname);
$query="SELECT * FROM osym";
$sql=$query;
$iller = $_POST['iller'];
$bolum = $_POST['bolum'];
mysqli_real_escape_string($db_connection,$_POST['iller']);
mysqli_real_escape_string($db_connection,$_POST['bolum']);
$conditions = array();
if($iller !="") {
$conditions[] = " Il='$iller'";
}
if($bolum !="") {
$conditions[] = " Bolum='$bolum'";
}
if (count($conditions) > 0) {
$sql .= " WHERE " . implode(' AND ', $conditions);
}
echo "<table border='1'>
<tr>
<th>Kod</th>
<th>İl</th>
<th>Okul</th>
<th>Bölüm</th>
<th>Dili</th>
<th>Öğretim</th>
<th>Burs</th>
<th>Kontenjan</th>
<th>Puan Türü</th>
<th>Sıra</th>
<th>Taban P.</th>
<th>Tavan P.</th>
</tr>";
mysqli_query($db_connection,"SET NAMES UTF8");
if (isset($_POST['submit'])) {
$result = mysqli_query($db_connection,$sql);
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['Kod'] . "</td>";
echo "<td>" . $row['Il'] . "</td>";
echo "<td>" . $row['Okul'] . "</td>";
echo "<td>" . $row['Bolum'] . "</td>";
echo "<td>" . $row['Dili'] . "</td>";
echo "<td>" . $row['Ogr'] . "</td>";
echo "<td>" . $row['Burslu'] . "</td>";
echo "<td>" . $row['Kontenjan'] . "</td>";
echo "<td>" . $row['PuanT'] . "</td>";
echo "<td>" . $row['Sira'] . "</td>";
echo "<td>" . $row['TabPuan'] . "</td>";
echo "<td>" . $row['TavPuan'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
?>
每当我选择一个选项并点击&#39; Filtrele&#39;按钮,所有选项名称都返回&#34; Hepsi&#34;。
我试过把
<?php if ($iller="İstanbul") {echo "selected"; } ?>
in
<option value="İstanbul">
标签,但它没有用。
由于方法,我也不能使用GET属性。我提前感谢您的帮助。
答案 0 :(得分:0)
您需要在设置$_POST
变量后打印表单,以便添加相应的SELECTED
属性。
当你致电mysqli_real_escape_string
时,你必须将结果分配回变量。
<?php
$iller = isset($_POST['iller']) ? $_POST['iller'] : '';
$bolum = isset($_POST['bolum']) ? $_POST['bolum'] : '';
?>
<form method="POST">
<label>İller:</label><select style="width:150px" name="iller">
<OPTION VALUE=''>Hepsi</OPTION>
<option value="İstanbul" <?php if ($iller == "İstanbul") echo "SELECTED" ?> >İstanbul</option>
<option value="Ankara" <?php if ($iller == "Ankara") echo "SELECTED" ?> >Ankara</option>
<option value="Bolu" <?php if ($iller == "Bolu") echo "SELECTED" ?> >Bolu</option>
</select>
<label>Bölümler:</label><select style="width:150px" name="bolum">
<OPTION VALUE=''>Hepsi</OPTION>
<option value="Makine Mühendisliği" <?php if ($bolum == "Makine Mühendisliği") echo "SELECTED" ?> >Makine Mühendisliği</option>
<option value="Endüstri Mühendisliği" <?php if ($bolum == "Endüstri Mühendisliği") echo "SELECTED" ?> >Endüstri Mühendisliği</option>
<option value="Elektrik Mühendisliği" <?php if ($bolum == "Elektrik Mühendisliği") echo "SELECTED" ?> >Elektrik Mühendisliği</option>
</select>
<input class="button" type="submit" name="submit" value="Filtrele" /></td>
</form>
<?php
$db_connection = mysqli_connect($host,$user,$password,$dbname);
$query="SELECT * FROM osym";
$sql=$query;
$iller = mysqli_real_escape_string($db_connection,$iller);
$bolum = mysqli_real_escape_string($db_connection,$bolum);
$conditions = array();
if($iller !="") {
$conditions[] = " Il='$iller'";
}
if($bolum !="") {
$conditions[] = " Bolum='$bolum'";
}
if (count($conditions) > 0) {
$sql .= " WHERE " . implode(' AND ', $conditions);
}
echo "<table border='1'>
<tr>
<th>Kod</th>
<th>İl</th>
<th>Okul</th>
<th>Bölüm</th>
<th>Dili</th>
<th>Öğretim</th>
<th>Burs</th>
<th>Kontenjan</th>
<th>Puan Türü</th>
<th>Sıra</th>
<th>Taban P.</th>
<th>Tavan P.</th>
</tr>";
mysqli_query($db_connection,"SET NAMES UTF8");
if (isset($_POST['submit'])) {
$result = mysqli_query($db_connection,$sql);
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['Kod'] . "</td>";
echo "<td>" . $row['Il'] . "</td>";
echo "<td>" . $row['Okul'] . "</td>";
echo "<td>" . $row['Bolum'] . "</td>";
echo "<td>" . $row['Dili'] . "</td>";
echo "<td>" . $row['Ogr'] . "</td>";
echo "<td>" . $row['Burslu'] . "</td>";
echo "<td>" . $row['Kontenjan'] . "</td>";
echo "<td>" . $row['PuanT'] . "</td>";
echo "<td>" . $row['Sira'] . "</td>";
echo "<td>" . $row['TabPuan'] . "</td>";
echo "<td>" . $row['TavPuan'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
?>