我有一个搜索表单,用户将插入他/她的CODE和NAME&该代码的TELEPHONE将显示在一个工作正常的表中(由于堆栈溢出)。
<form action="list25.php" method="post">
Search By code:<input type="text" name="code"><br><br>
<table border="0" width="100%" cellpadding="0" cellspacing="0" id="product-table">
<tr>
<th class="table-header-repeat line-left"><a href="">Name</a></th>
<th class="table-header-repeat line-left"><a href="">telephone</a></th>
</tr>
<?php
if (isset($_POST['search'])) {
$code = $_POST['code'];
$connect = mysqli_connect("localhost", "root", "", "sahmiye");
$query = "select * from balance where code = $code ";
$result = mysqli_query($connect, $query);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
?>
<tr>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['telephone']; ?></td>
</tr>
<?php
}
} else {
echo "Undifined ID";
$name = "";
$telephone = "";
}
mysqli_free_result($result);
mysqli_close($connect);
} else {
$name = "";
$telephone = "";
}
?>
</table>
<br><br>
<input type="submit" name="search" value="Find">
</form>
但我还有第二个完全不同的形式,当用户以第二种形式编写他/她的CODE时,我需要NAME&amp;然后将该CODE的电话显示在文本框中,然后用户将填写表格的其余部分,然后将其提交,以便将其保存到数据库中。
问题是我知道我不能在表单中有一个表单但是有一种方法让我运行我上面显示的第一个搜索表单而不使用表单,这样我可以在我的第二个表单中具有相同的功能,提供CODE,它将填充NAME&amp;的文本框。那个代码的电话?
答案 0 :(得分:4)
在不使用表单标签的情况下显示数据库中的数据?
您需要使用GET数组并使用href
中的参数。
即。并检查它是否已设置且不为空且等于“某事”:
<a href="file.php?var=John">Name</a>
然后使用带参数的GET数组。
if(!empty($_GET['var']) && $_GET['var'] == 'John'){
// do your thing to search for the string "John", as an example.
// ATT'N: John and john in the database are two different animals.
}
对其他href
使用相同的格式。
旁注:从href
代码中删除<form></form>
,因为可能会造成一些严重破坏。
当它是一个字符串时,您还需要在查询中引用该变量。
即:
$query = "select * from balance where code = '$code' ";
...如果$code
是一个字符串。
但是,如果查询包含MySQL会抱怨的字符(如John's Bar & Grill
),则会抛出错误,因此需要准备好的语句/转义值,这将有助于防止可能的SQL注入时间。
参考:
修改强>
再次回答问题并且TBH有点复杂,使用会话可以使用以保持值。
...然后检查是否设置了任何会话数组而不是空。
session_start();
必须位于使用会话的所有网页内才能实现此目的。输入还可以包含与会话相关的代码和“if set / not empty”。否则,您将收到有关未定义错误的错误。