【发布时间】:2020-07-09 21:07:07
【问题描述】:
隔离时间让我尝试一些代码来练习,但我确实在这方面有所收获。
看看我的文件。 顺便说一句,我的数据库连接很好
数据库
CREATE TABLE `excavated` (
`owner_name` varchar(255) NOT NULL,
`area` varchar(255) NOT NULL,
`street` varchar(255) NOT NULL,
`building_block` varchar(255) NOT NULL,
`year` varchar(255) NOT NULL,
`number` varchar(255) NOT NULL,
`archeologist` varchar(255) NOT NULL,
`key_words` varchar(255) NOT NULL,
`filename` varchar(255) NOT NULL,
`size` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
download_index.php(我的表单)
<form id="form" action="filesLogicDownload.php" method="post">
<?php include 'download_info.php'; ?>
<div id="preview"><img src="" width="150px"/></div><br>
<input class="btn btn-success" type="submit" value="Search">
</form>
download_info.php(用户可以给出的所有值,他不必全部给出)
<!--Όνομα Ιδιοκτήτη -->
<div class="form-group">
<label>Όνομα Ιδιοκτήτη</label>
<input type="text" class="form-control" id="owner_name" name="owner_name" placeholder="Όνομα Ιδιοκτήτη" >
</div>
<!--Περιοχή -->
<div class="form-group">
<label>Περιοχή</label>
<input type="text" class="form-control" id="area" name="area" placeholder="Περιοχή" >
</div>
<!--Οδός / Θέση -->
<div class="form-group">
<label>Οδός / Θέση</label>
<input type="text" class="form-control" id="street" name="street" placeholder="Οδός / Θέση" >
</div>
<!--Οικοδομικό Τετράγωνο -->
<div class="form-group">
<label>Οικοδομικό Τετράγωνο (Ο.Τ)</label>
<input type="text" class="form-control" id="building_block" name="building_block" placeholder="Οικοδομικό Τετράγωνο (Ο.Τ)" >
</div>
<!--Έτος Ανασκαφής -->
<div class="form-group">
<label>Έτος Ανασκαφής</label>
<input type="text" class="form-control" id="year" name="year" placeholder="Έτος Ανασκαφής" >
</div>
<!--Αριθμός Σχεδιαστικόυ Αρχείου -->
<div class="form-group">
<label>Αριθμός Σχεδιαστικού Αρχείου</label>
<input type="text" class="form-control" id="number" name="number" placeholder="Αριθμός Σχεδιαστικού Αρχείου" >
<!--Λέξεις Κλειδία -->
</div>
<div class="form-group">
<label>Λέξεις Κλειδία</label>
<input type="text" class="form-control" id="key_words" name="key_words" placeholder="Λέξεις Κλειδία" >
</div>
<!--Αρχαιολόγος -->
<div class="form-group">
<label>Αρχαιολόγος</label>
<input type="text" class="form-control" id="archeologist" name="archeologist" placeholder="Αρχαιολόγος" >
</div>
filesLogicDownload.php(这里我想在他按下按钮时显示值)
<?php
include 'database_connection.php';
if(!empty($_POST['owner_name'])){
$owner_name = $_POST['owner_name'];
}else {
$owner_name = "0";
}
if(!empty($_POST['area'])){
$area = $_POST['area'];
}else {
$area = "0";
}
if(!empty($_POST['street'])){
$street = $_POST['street'];
} else {
$street = "0";
}
if(!empty($_POST['building_block'])){
$building_block = $_POST['building_block'];
}else {
$building_block = "0";
}
if(!empty($_POST['year'])){
$year = $_POST['year'];
}else {
$year = "0";
}
if(!empty($_POST['number'])){
$number = $_POST['number'];
}else {
$number = "0";
}
if(!empty($_POST['key_words'])){
$key_words = $_POST['key_words'];
}else {
$key_words = "0";
}
if(!empty($_POST['archeologist'])){
$archeologist = $_POST['archeologist'];
}else {
$archeologist = "0";
}
$sql ="SELECT * FROM employees
WHERE
'owner_name' LIKE '%{$owner_name}%'
OR 'area' LIKE '%{$area}%'
OR 'street' LIKE '%{$street}%'
OR building_block LIKE '%{$building_block}%'
OR 'year' LIKE '%{$year}%'
OR 'number' LIKE '%{$number}%'
OR archeologist LIKE '%{$archeologist}%'; ";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
?>
<table>
<th>Όνομα Ιδιοκτήτη</th>
<th>Περιοχή</th>
<th>Οδός / Θέση</th>
<th>Οικοδομικό Τετράγωνο (Ο.Τ)</th>
<th>Έτος Ανασκαφής</th>
<th>Αριθμός Σχεδιαστικού Αρχείου</th>
<th>Λέξεις Κλειδία</th>
<th>Αρχαιολόγος</th>
<th>Μέγεθος Αρχείου</th>
<?php
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)){
?>
<tr>
<td><?php echo $row['owner_name']; ?></td>
<td><?php echo $row['area']; ?></td>
<td><?php echo $row['street']; ?></td>
<td><?php echo $row['building_block']; ?></td>
<td><?php echo $row['year']; ?></td>
<td><?php echo $row['number']; ?></td>
<td><?php echo $row['archeologist']; ?></td>
<td><?php echo $row['key_words']; ?></td>
<td><?php echo $row['filename']; ?></td>
<td><?php echo $row['size']; ?></td>
</tr>
<?php
}
}
mysqli_close($conn);
?>
</table>
</html>
首先,我想弄清楚,当他不在我的某些输入中键入值时,我如何在搜索中忽略。
例如,如果他只给出 3 个值,那么我的代码将显示考虑到它们的所有数据库结果。如果他只键入 1 个或更多,则相同。
每次都不知道他会选择什么价值观和多少。
最后我只想显示正确的结果。
当他输入 year 和 number 时,结果应该是正确的年份 AND 数字。
不显示所有具有年份OR数字的结果。
例如,如果 year=2005 和 number=1:
不显示:
年份 = 2005 number=1
年份 = 2005 number=2
年份 = 2006 年数字=1
*年 = 2007 年数字=1
仅显示:
年份 = 2005 数字 = 1
我希望你能理解我的解释以及我的想法。如果它能够实现,如果有人有想法,我会很高兴。
谢谢,保重!
【问题讨论】:
-
如果没有值,您希望哪些特定输入不运行数据库查询?