所以这是它运行的SQL语句我当前的代码:如何通过查询摆脱重复?
$sql= "SELECT * FROM contractor WHERE CONCAT(FIRSTNAME,' ', LASTNAME,' ', ARRIVAL,' ', ID, ' ', DRIVERL) like '%$searchTerm%' GROUP BY DRIVERL";
$query = mysql_query($sql);
$count=mysql_num_rows($query);
if(($count)>=1)
{
$output = "";
while($row = mysql_fetch_array($query))
{
$output .= '<a href="'.'http://localhost/contractor/redirectcontractorpage.php'.'?userid='.$row['id'].'">
First Name: '.$row['FIRSTNAME'].'<br />
Last Name: '.$row['LASTNAME'].'<br />
Arrival: '.$row['ARRIVAL'].'<br />
DL: '.$row['DRIVERL'].'<br />
Company: '.$row['COMPANY'].'<br /><br /></a>';
}
echo $output;
}
else
echo "There was no matching record for the name " . $searchTerm;
}
例如我打印所有的名乔的结果。 名字:卡尔文 姓:乔 到达:2014年6月24日14点20分07秒 DL:kahisds8687 公司:aerotek
名字:卡尔文 姓:乔 到达:2014-06 -24 14时09分24秒 DL:kahisds8687 公司:aerotek
名字:卡尔文 姓:乔 到达:2014年6月24日14时07分02秒 DL:kahisds8687 公司:aerotek
名字:Joe 姓:AEF 到达:2014年6月24日14点46分34秒 DL:jior21r3 公司:asfsad
名字:卡尔文 姓:乔 到达时间:2014年-06-24 14时04分13秒 DL:kahisds8687 公司:aerotek
,而不是我要打印基于重复的DL的柜面的名称是相同的名称。所以我应该怎么做来调整sql查询,我试着使用不同的,但我得到的错误。
UPDATE: 因此,我期待在表中查询。我想打印每一个joe,即使名字和姓氏是相同的(或者不是),但仅仅基于driverL#。所以如果有一个Joe Smith和一个Joe James并且我搜索了joe,那么每个记录(可能很多,因为它们可以是传入和传出)都可以存在。我想打印其中每一个,如果它的最早或最晚到达日期无关紧要,那不是我担心的。我更倾向于只打印每个案例,这样我就可以继续在我的应用程序中使用正确的个人。也是这样,目前我会打印所有的案件(如果他们在过去一个月内多次进入例如可能是一吨)。所以我真的想要基于driverL进行打印,当然也要根据搜索内容与searchterm相关联。
名字:卡尔文 姓:乔 到达:2014年6月24日14时20分07秒 DL:kahisds8687 公司:aerotek
名字:卡尔文 姓:乔 到达: 2014年6月24日14时09分24秒 DL:kahisds8687 公司:aerotek
名字:卡尔文 姓:乔 到达:2014年6月24日14时07分02秒 DL:kahisds8687 公司:aerotek
名字:Joe 姓:AEF 到达:2014年6月24日14点46分34秒 DL:jior21r3 公司:
名字:卡尔文 姓:乔 到达:2014年6月24日14点04分13秒 DL:kahisds8687 公司:aerotek
当前语句:$ SQL =“SELECT * FROM承包商WHERE CONCAT(名字, ' '姓氏,'',到货,'',ID,'',DRIVERL)如'%$ searchTerm%'GROUP BY DRIV ERL“;
我想只是每个人的一个被如此理想的印刷:
名字:Joe 姓:AEF 到达:2014年6月24日14时46分34秒 DL:jior21r3 公司:
名字:卡尔文 姓:乔 到达:2014年6月24日14点04分13秒 DL:kahisds8687 公司:aerotek
程序的问题:潜在的SQL注入和上面的查询将创建全表扫描,因为你是连接在一起的领域。 – Ruskin
您的代码已经返回不同条目的列表。如果您只想显示一次“Calvin Joe” - 那么您需要在查询前面使用不同的字词,并在结果集中排除到达时间。 – entropic