这将是我的第二篇文章,我很困惑,需要一些帮助。首先,我将解释我希望它做什么,然后发布我的代码。我首先使用名字,姓氏或日期来搜索数据库以打印结果。 我首先需要帮助才能打印一次重复名称。它打印每个可能的情况,我希望它匹配字段(除了到达,原因,甚至公司(这些可以改变)) 接下来,一旦结果打印在我的搜索页面上,我希望单选按钮位于每组数据旁边。例如,如果有两个姓棕色的人,我希望名字,姓氏和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>
我感谢任何帮助。我希望我只是让事情复杂化,并且可以很容易地解决我的最后几个问题。谢谢!
答案 0 :(得分:0)
要从结果中删除重复项,请在SQL语句中添加DISTINCT
或GROUP 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