如何实现和调用多个php函数?

如何实现和调用多个php函数?,php,html,mysql,sql,forms,Php,Html,Mysql,Sql,Forms,下面是我在SO的帮助下编写的代码。我试图在同一页面上实现$select语句和$search语句。$select语句工作正常,但我不知道当用户使用代码中的表单进行搜索时,如何调用$search语句来执行。有人知道如何做到这一点吗,或者你能给我介绍一个关于表单如何与php交互的好教程吗 <?php require 'db/connect.php'; $select = $db->query("SELECT * FROM customers ORDER BY id DESC"); $s

下面是我在SO的帮助下编写的代码。我试图在同一页面上实现
$select
语句和
$search
语句。
$select
语句工作正常,但我不知道当用户使用代码中的表单进行搜索时,如何调用
$search
语句来执行。有人知道如何做到这一点吗,或者你能给我介绍一个关于表单如何与php交互的好教程吗

<?php
require 'db/connect.php';

$select = $db->query("SELECT * FROM customers ORDER BY id DESC");

$search = $db->query("SELECT * FROM customers WHERE FName LIKE '%$_REQUEST[q]%' OR LName LIKE '%$_REQUEST[q]%' ORDER BY id DESC");
?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
        <div id="wrapper">
            <h1>Customers</h1>
            <p><a class="btn create" href="createcustomer.php">CREATE</a></p>
            <?php
            if (!$select->num_rows) {
                echo '<p>', 'No records', '</p>';
            }else{
            ?>
                <table border="1" width="100%">
                <thead>
                    <tr>
                        <th>First Name</th>
                        <th>Last Name</th>
                        <th>Phone</th>
                        <th>Alt Phone</th>
                        <th>Job Address</th>
                        <th>Billing Address</th>
                        <th>Email</th>
                        <th>Alt Email</th>
                    </tr>
                </thead>
                <tbody>
                <?php
                    while ($row = $select->fetch_object()) {
                ?>
                    <tr>
                        <td><?php echo $row->FName;?></td>
                        <td><?php echo $row->LName;?></td>
                        <td><?php echo $row->Phone;?></td>
                        <td><?php echo $row->AltPhone;?></td>
                        <td><?php echo $row->JobAddress;?></td>
                        <td><?php echo $row->BillingAddress;?></td>
                        <td><?php echo $row->Email;?></td>
                        <td><?php echo $row->AltEmail;?></td>

                        <td><a class="btn read" href="viewcustomer.php?id=<?php echo $row->id; ?>">READ</a>&nbsp;<a class="btn update" href="editcustomer.php?id=<?php echo $row->id; ?>">UPDATE</a>&nbsp;<a class="btn delete" href="deletecustomer.php?id=<?php echo $row->id; ?>">DELETE</a></td>
                    </tr>
                </tbody>
                <tbody>
            <?php
            }
            ?>
            </table>
            <?php
            }
            ?>
            # Search form that needs tied to $search
            <input type="text" name="q" /> <input type="submit" name="search" />

        </div>
    </body>
</html>

您需要验证表单是否以php代码发送:

<?php

require 'db/connect.php';

if(isset($_POST['q'])) {

$q = $_POST['q'];

$select = $db->query("SELECT * FROM customers WHERE FName LIKE '%$q%' OR LName LIKE '%$q%' ORDER BY id DESC");

} else {

$select = $db->query("SELECT * FROM customers ORDER BY id DESC");

}

?>

我想
'%$\u请求[q]%
会给您带来问题,因为您想访问
$\u请求[q]
,而不是
$\u请求[q]

将其替换为“
”%”$\u请求['q']。“%”
应该是一个好的开始。 但您通常不希望这样,因为这段代码容易受到sql注入的攻击

因此,您应该使用报价功能:

$search = $db->query("SELECT * FROM customers WHERE FName LIKE " . $db->quote("%" . $_REQUEST['q'] . "%") . " OR LName LIKE " . $db->quote("%" . $_REQUEST['q'] . "%") . " ORDER BY id DESC");
接下来要做的是检查表单输入是否已设置,并使用搜索结果,而不是不带搜索参数的select语句:

if (isset($_REQUEST['q'])) {
    $q = "%" . $_REQUEST['q'] . "%";
    $select = $db->query("SELECT * FROM customers WHERE FName LIKE " . $db->quote($q) . " OR LName LIKE " . $db->quote($q) . " ORDER BY id DESC");
} else {
    $select = $db->query("SELECT * FROM customers ORDER BY id DESC");
}

您没有表单标记。我尝试了您的建议,但出现了一个错误“注意:未定义变量:在C:\wamp\www\customers.php中选择第28行”’。此外,在屏幕顶部,似乎出现了格式错误,因为它显示了以下代码行末尾文本:“查询”(“从客户处选择*,其中FName(如“%$q%”或LName(如“%$q%”)按id描述订购”);}或者{$SELECT=$db->query(“SELECT*FROM customers ORDER BY id描述”);}>”备注:第28行如下:“如果(!$SELECT->num_rows){'@Steven我编辑了我的答案,现在试试,让我知道问题是否解决了。非常感谢!!!!如果你让我知道你的paypal电子邮件,我想请你喝一杯:D@Steven谢谢,只检查是否被接受,如果你想你可以把答案提高,如果你不知道怎么做,读一下这篇文章,你会发现喝酒是真的吗?
if (isset($_REQUEST['q'])) {
    $q = "%" . $_REQUEST['q'] . "%";
    $select = $db->query("SELECT * FROM customers WHERE FName LIKE " . $db->quote($q) . " OR LName LIKE " . $db->quote($q) . " ORDER BY id DESC");
} else {
    $select = $db->query("SELECT * FROM customers ORDER BY id DESC");
}