任何人都可以帮助我......我想通过名称或协议编号进行搜索,但它不起作用,它只按名称搜索,
我是计算机编程的绝对初学者,当我想通过协议编号搜索它只显示我的数据库的第一条记录,并且只按名称搜索工作正常,
”
mysql_select_db("aruba", $con);
$a1=$_POST['u_Name'];
$a2=$_POST['u_Agreement'];
$sql=" SELECT * FROM customer
WHERE Name like ('%$a1%')
OR AgreementNum ='$a2'
";
$q=mysql_query($sql);
$x=mysql_fetch_array($q);
?>
$q=mysql_query($sql);
$x=mysql_fetch_array($q);
?><table>
<tr><td><b>Customer Name:</b></td><td><?php echo" " ,$x['Name'];
?></td><?php
?><tr><td><b>Address:</b></td><td><?php echo"", $x['Address'];
?></td><?php
?><tr><td><b>Contact Person:</b></td><td><?php echo" " ,$x['Sales'];
?></td><?php
?><tr><td><b>Phone Number: </b></td><td><?php echo" ", $x['PhoneNum'];
?></td><?php
?><tr><td><b>Maintenance Agreement No:</b></td><td><?php echo" " ,$x['AgreementNum'];
?></td><?php
?><tr><td><b>Start Date:</b></td><td><?php echo" " ,$x['StartDate'];
?></td><?php
?><tr><td><b>End Date: :</b></td><td><?php echo" " ,$x['EndDate'];
?></td><?php
?><tr><td><b>Reseller Name:</b></td><td><?php echo" " ,$x['Reseller'];
?></td><?php
?><tr><td><b>Product Model:</b></td><td><?php echo" " ,$x['ModelNum'];
?></td><?php
?><tr><td><b>Remarks:</b></td><td><?php echo" " ,$x['Quantity'];
?></td><?php
mysql_close($con)
?>
'
答案 0 :(得分:0)
select * from table where field in ('1','2','3')
答案 1 :(得分:0)
尝试用括号括起你的陈述。我不确定LIKE是否接受和OR参数,但我认为这是你问题的根源。尝试:
$sql=" SELECT * FROM customer
WHERE (Name like ('%$a1%') )
OR ( AgreementNum ='$a2' )
";
另外,还有一些注意事项:
想知道如果突然发生这种情况会发生什么? (不要在你的数据库上测试这个!!)
$a2 = "'); DELETE FROM customer;--";
答案:
SELECT * FROM customer
WHERE (Name like ('%$a1%') )
OR ( AgreementNum =''); DELETE FROM customer;--' )