此代码适用于一个选择框,当找到值时,即使存在更多具有相同值的列,它也会停止。 我需要为许多选择框工作,并使用具有相同列值的所有行填充表(value.that用户选择选择框)
<?php
require('includes/config.php');
require('layout/header.php');
function get_info($db, $predmet)
{
$sql = $db->prepare("SELECT * FROM raspored WHERE predmet = :predmet");
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute([':predmet' => $predmet]);
if ($row = $sql->fetch()) {
return $row;
}
return false;
}
?>
<table border="0" class="table table-hover table-striped">
<tr COLSPAN=2 BGCOLOR="#6D8FFF">
<th>ИД</th>
<th>Предмет</th>
<th>Професор</th>
<th>Ден</th>
<th>Час</th>
<th>Просторија</th>
<th>Тип</th>
</tr>
<?php
if (isset($_POST['predmet1'])) {
if ($row = get_info($db, $_POST['predmet1'])) {
echo "<tr>" .
"<td>" . $row["ID"] . "</td>" .
"<td>" . $row["predmet"] . "</td>" .
"<td>" . $row["profesor"] . "</td>" .
"<td>" . $row["den"] . "</td>" .
"<td>" . $row["chas"] . "</td>" .
"<td>" . $row["prostorija"] . "</td>" .
"<td>" . $row["tip"] . "</td>" .
"</tr>";
} else {
echo "don't exist records for list on the table";
}
}
?>
</table>
</div>
<?php
//футер
require('layout/footer.php');
?>
这是选择框。
<select name="predmet[1]" id="predmet[1]" class="form-control input-lg">
<option value="" class="placeholder" style="display: none;">Предмет1</option>
<option value="Алгоритми и структури на податоци">Алгоритми и структури на податоци</option>
<option value="Конечна Математика">Конечна Математика</option>
<option value="Софтверско инженерство">Софтверско инженерство</option>
</select>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-6">
<div class="form-group">
<select name="predmet[2]" id="predmet[2]" class="form-control input-lg">
<option value="" class="placeholder" style="display: none;">Предмет2</option>
<option value="Алгоритми и структури на податоци">Алгоритми и структури на податоци</option>
<option value="Конечна Математика">Конечна Математика</option>
<option value="Софтверско инженерство">Софтверско инженерство</option>
</select>
答案 0 :(得分:0)
所以我觉得这样的事情。
function get_info($db, $predmet_1,$predmet_2)
{
$param = array();
$query = "SELECT * FROM raspored";
$where_sql = '';
if($predmet_1 != '' || $predmet_2 != '') {
$query .= " WHERE ";
}
if($predmet_1 != '') {
$where_sql .= 'predmet = :predmet_1';
$param[':predmet_1'] = $predmet_1;
}
if($predmet_2 != '') {
if($where_sql != '') {
where_sql .= ' AND ';
}
$where_sql .= 'predmet2 = :predmet_2';
$param[':predmet_2'] = $predmet_2;
}
$sql = $db->prepare("SELECT * FROM raspored ".$where_sql);
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute($param);
return $sql->fetchAll();
}
<select name="predmet_1" id="predmet_1" class="form-control input-lg">
<option value="" class="placeholder" style="display: none;">Предмет1</option>
<option value="Алгоритми и структури на податоци">Алгоритми и структури на податоци</option>
<option value="Конечна Математика">Конечна Математика</option>
<option value="Софтверско инженерство">Софтверско инженерство</option>
</select>
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-6">
<div class="form-group">
<select name="predmet_2" id="predmet_2" class="form-control input-lg">
<option value="" class="placeholder" style="display: none;">Предмет2</option>
<option value="Алгоритми и структури на податоци">Алгоритми и структури на податоци</option>
<option value="Конечна Математика">Конечна Математика</option>
<option value="Софтверско инженерство">Софтверско инженерство</option>
</select>
<table border="0" class="table table-hover table-striped">
<tr COLSPAN=2 BGCOLOR="#6D8FFF">
<th>ИД</th>
<th>Предмет</th>
<th>Професор</th>
<th>Ден</th>
<th>Час</th>
<th>Просторија</th>
<th>Тип</th>
</tr>
<?php
$rows = get_info($db, $_POST['predmet1'],$_POST['predmet2'];
if(!empty($rows) {
foreach($rows as $row ) {
echo "<tr>" .
"<td>" . $row["ID"] . "</td>" .
"<td>" . $row["predmet"] . "</td>" .
"<td>" . $row["profesor"] . "</td>" .
"<td>" . $row["den"] . "</td>" .
"<td>" . $row["chas"] . "</td>" .
"<td>" . $row["prostorija"] . "</td>" .
"<td>" . $row["tip"] . "</td>" .
"</tr>";
}
} else {
echo "don't exist records for list on the table";
}
}
?>
</table>
</div>
<?php
//футер
require('layout/footer.php');
?>
我认为这是正确的,但如果predmet_1和predmet_2都与同一个字段相关,那么您可以使用SQL&#39; IN&#39;但是以类似的方式构建sql语句和parms。
我是否可以建议如果是这样的话,就像这样。 http://loudev.com/或 http://davidstutz.github.io/bootstrap-multiselect/
可以帮助您的用户。
希望有所帮助。