这是一个像DHL这样的跟踪系统。使用php表格从MySQL数据库跟踪货件编号。 但我需要它使用php从mysql中用逗号分隔搜索多行。
<?php
$ship=$_POST['Consignment'];
$cons = explode(',',$ship);
?>
<?php
$sql = "SELECT * FROM tbl_courier WHERE cons_no = '$cons[]'";
$result = dbQuery($sql);
$no = dbNumRows($result);
if($no == 1){
while($data = dbFetchAssoc($result)) {
extract($data);
?>
Shipment Name: <?php echo $ship_name; ?>
Shipment Phone: <?php echo $phone; ?>
<?php }//while
}//if
else {
echo 'In else....';
?>
Consignment Number not found.Search Again.
<?php
}//else
?>
所以我需要我的搜索将使用逗号分隔(,)。 谢谢你的帮助。
答案 0 :(得分:2)
在这种情况下你可以使用IN运算符。
<?php
$ship=$_POST['Consignment'];
?>
<?php
$sql = "SELECT * FROM tbl_courier WHERE cons_no IN(".$ship.")";
$result = dbQuery($sql);
$no = dbNumRows($result);
if($no == 1){
while($data = dbFetchAssoc($result)) {
extract($data);
?>
希望它对你有所帮助。
答案 1 :(得分:1)
更改您在选择查询中写入'$ cons []'的SQL查询,这是错误的。爆炸后你会得到1,2,3的数据所以你只需要在查询而不是数组和用户IN运算符中写这样的变量。
`$sql = "SELECT * FROM tbl_courier WHERE cons_no IN(".$ship.")";`
答案 2 :(得分:1)
在POST
查询中使用MySql
数据之前,您应始终准备/清理<?php
if (isset[$_POST['Consignment']] && !empty($_POST['Consignment'])) {
$ship = $_POST['Consignment'];
$cons = explode(',', $ship);
$cons = array_filter($cons, function($v){
return trim(strip_tags($v));
});
$cons = '"' . implode('","', $cons) . '"';
$sql = "SELECT * FROM tbl_courier WHERE cons_no IN ($cons)";
$result = dbQuery($sql);
$no = dbNumRows($result);
if ($no == 1) {
while ($data = dbFetchAssoc($result)) {
extract($data);
....
}
....
}
?>
数据:
activity
答案 3 :(得分:0)
请使用“在设置中查找”
SELECT * FROM tbl_courier WHERE FIND_IN_SET(cons_no,'$ship')
更新
Applications/PyCharm.app/Contents/helpers/pycharm/utrunner.py
注意: - $ ship逗号分隔值不是数组
答案 4 :(得分:0)
我找到了答案:
if(isset($_POST['Consignment'])){
$ship=$_POST['Consignment'];
$shipment= explode(',',$_POST['Consignment']);
$ship = implode("', '",$shipment) ;
$query = "SELECT * FROM `tbl_courier` WHERE `cons_no` IN('$ship')";
$results = $mysqli->query($query);
if($results){
print '<table border="1">';
while($row = $results->fetch_assoc()) {
print '<tr>';
print '<td>'.$row["cons_no"].'</td>';
print '<td>'.$row["customerName"].'</td>';
print '<td>'.$row["customerPhone"].'</td>';
print '</tr>';
}
print '</table>';
// Frees the memory associated with a result
$results->free();
}
else {
echo "Query Not Match";
}
$mysqli->close();
}
感谢回答。