gpt4 book ai didi

php - 如何在搜索之前隐藏PHP中SQL表的显示?

转载 作者:行者123 更新时间:2023-11-29 19:35:13 25 4
gpt4 key购买 nike

在此网站上发布我的第一个问题。

我制作了一个 php 网页,其中文本框将接受搜索关键字,提交后,将显示该表的行。简单的!

问题是,现在,在搜索之前,整个表格已经显示在我的 php 页面上。我不想那样。我只想要搜索后的结果,搜索前不应显示表格(测试数据表有500行,但实际表将有15,000行)。

页面(搜索前):

    <?php
if(isset($_REQUEST['submit'])){
$name=$_POST['name'];
$email=$_POST['email'];
$sql=" SELECT * FROM live_table WHERE name like '%".$name."%' AND company LIKE '%".$email."%'";
$q=mysqli_query($con, $sql);
}
else{
$sql="SELECT * FROM live_table";
$q=mysqli_query($con, $sql);
}
?>
<form method="post" class="search">

<table width="200">
<tr>
<td></td>
<td><input class="form__input" type="search" autocomplete="off" name="name" placeholder="Name" value="<?php if(isset($name)) echo $name;?>" /></td>
<td></td>
<td><input class="form__input" autocomplete="off" type="search" name="email" placeholder="Company Name" value="<?php if(isset($email)) echo $email;?>" /></td>
<td><input type="submit" name="submit" value=" Find " class="button"/></td>
</tr>
</table>
</form>



<table width="70%" cellpadding="5" cellspace="5" style="margin: 3em 3em 3em 3em;">

<tr>
<td><strong>Salutation</strong></td>
<td><strong>First Name</strong></td>
<td><strong>Middle Name</strong></td>
<td><strong>Last Name</strong></td>


</tr>

<?php
while($res=mysqli_fetch_array($q)){
?>
<tr>
<td><?php echo $res['id'];?></td>
<td><?php echo $res['name'];?></td>
<td><?php echo $res['company'];?></td>
<td><?php echo $res['zip'];?></td>
<td><?php echo $res['city'];?></td>
</tr>

<?php } ?>
</table>

最佳答案

首先,您的代码容易受到 SQL 注入(inject)攻击:切勿在 SQL 查询中使用原始用户输入(或其他任何地方),请参阅 How can I prevent SQL injection in PHP?

您需要删除 else block 中的查询

else{
$sql="SELECT * FROM live_table";
$q=mysqli_query($con, $sql);
}

然后,在打印表格行之前,添加一个测试来检查 $q 是否已定义

<?php if (isset($q)) : ?>
<?php while($res=mysqli_fetch_array($q)): ?>
<tr>
<td><?php echo $res['id'];?></td>
<td><?php echo $res['name'];?></td>
<td><?php echo $res['company'];?></td>
<td><?php echo $res['zip'];?></td>
<td><?php echo $res['city'];?></td>
</tr>

<?php endwhile; ?>
<?php endif; ?>

关于php - 如何在搜索之前隐藏PHP中SQL表的显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com