php - 使用复选框从数据库中提取电子邮件地址(PHP、MYSQL)

标签 php mysql

我是 PHP/MYSQL 的初学者,需要一些关于我正在开发的项目的帮助。

我正在为销售人员建立联系数据库。她需要能够使用搜索词来浏览她的联系人,寻找与该词匹配的人。当她搜索一个术语并出现匹配联系人列表时,她希望能够使用复选框选择某些条目,然后获取他们的电子邮件地址列表,将其复制并粘贴到 Outlook 中,以便她可以向他们发送她拥有的商品的电子表格出售或其他信息。

搜索功能(以及其他所有功能)工作正常,但我似乎无法让最后一部分工作。现在,如果检查了该人,则只会显示列表电子邮件地址中的最后一个人。如果没有检查列表中的最后一个人,则无论检查了多少其他人,都不会显示任何内容。

我已经在这里搜索并尝试实现我所看到的建议,但我没有得到我想要的结果。我希望有人能提供帮助。谢谢

<? php
    if (isset($namesubmit)) {
        $sql = "SELECT * FROM contact WHERE name LIKE '%$searchName%'";
        $result = mysqli_query($connect, $sql);
        if (empty($searchName)) {
            echo '<span style="color:red">Please enter a name to search the database</span>';
        } elseif (mysqli_num_rows($result) > 0) {
            echo "<h3>Results For <b>{$searchName}</b>: <p></h3>";
            while($row = mysqli_fetch_assoc($result)) {
                $id = $row["contactID"];
                $email = $row["email"];
                $bizphone = $row['bizphone'];
                $mobphone = $row['mobphone'];
                echo '<h2>'  . $row["name"] . '<br /></h2>' . '<h3>' . $row["company"] . '<br />' . $row["website"] . '<br />' . "<a href=\"mailto:$email\">" . $email . '</a>' . '<br /> Business Phone Number: ' . "<a href=\"tel:+$bizphone\">" . $bizphone . '</a><br /> Mobile Phone Number: ' . "<a href=\"tel:+$mobphone\">" . $mobphone . '</a><br /> Business Address: ' . $row["address"] . '<br /> Buys: ' . $row["buys"] . '<br /> Sells: ' . $row["sells"]  . '<br />';
                echo  "<form method=\"POST\" action=\"updateform.php\"><input type=\"hidden\" name=\"sel_record\" value=\"$id\"><input type=\"submit\" name=\"update\" value=\"Edit Contact\"></form>" . '<p>' . "<form method=\"post\" action=\"deletecontact.php\"><input type=\"hidden\" name=\"sel_record\" value=\"$id\"><input type=\"submit\" name=\"delete\" value=\"Delete Contact\"></form><p><form method=\"POST\" action=\"emaillist.php\"><input type=\"checkbox\" name=\"action[]\" value=\"$email\" id=\"$email\">Send Email</h3><br /><hr />";
            }
            echo "<input type=\"submit\" name=\"massSubmit\" value=\"Send Email\"></form>";
?>
<小时/>
<? php
    $massSubmit = $_POST['massSubmit'];
    $action = $_POST['action'];
    if (isset($massSubmit)) {
        foreach ($action as $value) {
            echo $value;
        }
    }
?>

所以现在它只会显示列表中最后一个人的电子邮件地址(如果该人被选中)。如果没有检查该人,即使检查了列表中的其他人,也不会显示任何内容。 Var_dump 表示 NULL

非常感谢

编辑:感谢您提供有关嵌套表单的信息。我删除了其他表单作为测试,它现在正在按照我想要的方式工作。现在的问题是如何集成同时更新联系人、删除联系人和收集电子邮件地址的功能。谁能帮忙解决这个问题吗?

最佳答案

如果我正确理解您的问题,您想通过选中一些框并获取其他数据点来从搜索结果中选择一些选项。 我可以通过以下方式查看此操作的完成情况:

1) 将复选框输入设置为数组。这样您就可以在接收 PHP 页面中循环遍历它们:

<input type="checkbox" name="salesperson[]" value="<?php echo $row["contactID"];?>>"

2) 在接收 PHP 页面中,创建一个循环并使用所有选定的 contactId 条目形成一个数组(我们将其称为 $contactarray)。

3) 创建一个 MySql 查询以使用如下所示的 WHERE 子句获取附加数据:

$query = "SELECT * FROM contact WHERE contactID in (" . $contactarray . ")";

4) 获取该查询的结果,您将获得所需的所有信息。

关于php - 使用复选框从数据库中提取电子邮件地址(PHP、MYSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56283017/

相关文章:

PHP 解码、更改和编码 JSON

MySQL 表带有 ?在最后

MYSQL + 同时选择和删除

php - 防止刷新按钮存储旧数据

php - 使用ajax代码删除上传的图片文件

php - codeigniter 中的相对路径

php - 使用 AJAX/PHP/mysqli 创建加载更多按钮

mysql - 多种数据类型的表ID

mysql - 从两个以上的表中选择,每个表都没有关系

mysql - 如何将 Access 2003 数据库链接到 MySQL 数据库