使用单选按钮传递数组以预填充表单

时间:2014-06-10 14:36:47

标签: php html sql forms radio

这将是我的第二篇文章,我很困惑,需要一些帮助。首先,我将解释我希望它做什么,然后发布我的代码。我首先使用名字,姓氏或日期来搜索数据库以打印结果。 我首先需要帮助才能打印一次重复名称。它打印每个可能的情况,我希望它匹配字段(除了到达,原因,甚至公司(这些可以改变)) 接下来,一旦结果打印在我的搜索页面上,我希望单选按钮位于每组数据旁边。例如,如果有两个姓棕色的人,我希望名字,姓氏和DL#旁边有一个单选按钮。导致两个按钮。这是我遇到麻烦的地方。一旦按下所选的收音机并按下下一个按钮(超链接),我将引导用户进入一组表格,其中所选的数据(名字,姓氏,dl#,公司)预先填写在这些地点。

总而言之,我需要帮助限制重复个人的打印,而且我需要帮助在搜索功能之后使用单选按钮保存数据,然后打印并预填充下一页上的表单。我目前用于搜索功能的代码是:

<h3>Search By First Name, Last Name, or Arrival Date (20XX-MO-DY)</h3>
<form action="searchpage.php" method="GET">
    <label>Search:
    <input type="text" name="searchname" id="searchname" />
    </label>
    <input type="submit" value="Search" />
</form>

我的搜索页面是:

<?php

$host = "localhost"; //server
$db = "practice_table"; //database name
$user = "root"; //databases user name
$pwd = ""; //password
mysql_connect($host, $user, $pwd) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());

$searchTerm = trim($_GET['searchname']);

// Check if $searchTerm is empty
if ($searchTerm == "") {
    echo "Enter name you are searching for.";
    exit();
} else {
    $sql = "SELECT * FROM contractor WHERE CONCAT(FIRSTNAME,' ',LASTNAME,' ', ARRIVAL) like 
'%$searchTerm%'";
    $query = mysql_query($sql);
    $count = mysql_num_rows($query);

    if (($count) >= 1) {
        $output = "";

        while ($row = mysql_fetch_array($query)) {
            $output .= "First Name: " . $row['FIRSTNAME'] . "<br />";
            $output .= "Last Name: " . $row['LASTNAME'] . "<br />";
            $output .= "Arrival: " . $row['ARRIVAL'] . "<br />";
        }
        echo $output;
    } else {
        echo "There was no matching record for the name " . $searchTerm;
    }
}
?>

上面的代码是打印所有结果的地方,我想规范重复的情况,也就是每个人的单选按钮应该在哪里。 最后这是超链接转到我希望预先填充代码的表单页面。 欢迎回来承包商。请在下面再次填写以下信息,以便今天访问。

First Name: 
<input type="text" name="FIRSTNAME" id="FIRSTNAME" value="<?php echo $_POST['radio']; ?>"/>
Last Name: 
<input type="text" name="LASTNAME" id="LASTNAME" value="<?php echo $_POST['radio']; ?>"/>

<form action="insert_submit.php" method="post" style="margin-left:35px;">
    First Name: <input type="text" name="FIRSTNAME" id="FIRSTNAME"/>
    Last Name: <input type="text" name="LASTNAME" id="LASTNAME"/>
    Purpose: <input type="text" name="PURPOSE" id="PURPOSE"/>
    <br />
    Company: 
    <input type="text" name="COMPANY" id="COMPANY"/>
    DL #: 
    <input type="text" name="DRIVERL" id="DRIVERL"/>
    <input type="radio" name="STATUS" id="STATUS" value="CHECKED IN">Log In
    <br/>
    <input type="radio" name="STATUS" id="STATUS" value="CHECKED OUT">Log Out
    <br/> 
    <input type="submit" value="Submit">
    <br/>
</form>

我感谢任何帮助。我希望我只是让事情复杂化,并且可以很容易地解决我的最后几个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

要从结果中删除重复项,请在SQL语句中添加DISTINCTGROUP BY子句,例如:

SELECT DISTINCT FIRSTNAME, LASTNAME, PURPOSE FROM ...

SELECT DISTINCT FIRSTNAME, LASTNAME, PURPOSE 
FROM ... 
WHERE ... 
GROUP BY DISTINCT FIRSTNAME, LASTNAME, PURPOSE 

要添加到达日期,同时仍然每人只打印一行,请在SELECT子句中添加MAX(ARRIVAL)

SELECT DISTINCT FIRSTNAME, LASTNAME, PURPOSE, MAX(ARRIVAL)
FROM ... 
WHERE ... 
GROUP BY DISTINCT FIRSTNAME, LASTNAME, PURPOSE