$sql = mysql_query("SELECT * FROM leg
WHERE trailers = '$VehicleID')$VehicleID是一个单一变量。
trailers是由一个或多个变量组成的数组的列。
目前,它只返回在拖车列中只有1 $VehicleID变量的表行。
如何使拖车返回数组中包含$VehicleID变量的所有行?
发布于 2015-02-27 14:47:24
使用IN子句和implode函数。
$VehicleID = array(1, 4, 5, 6);
$sql = mysql_query("SELECT * FROM leg
WHERE trailers IN (" . implode(',', $VehicleID) . ")");您需要检查更多的州:
1)只有一个数字:trailers = $VehicleID
( 2)字段中的数字位于开头:trailers LIKE '$VehicleID,%'
3)这个数字在字段的末尾:trailers LIKE '%,$VehicleID'
4)字段中的数字:trailers LIKE '%,$VehicleID,%'
现在您需要使用使用OR子句的所有选项(请不要忘记使用SQL注入):
$sql = mysql_query("SELECT * FROM leg
WHERE trailers = $VehicleID OR
trailers LIKE '$VehicleID,%' OR
trailers LIKE '%,$VehicleID' OR
trailers LIKE '%,$VehicleID,%'正确的DB模式:
创建新桌子(如:2科尔的trailers:trailer_id,vehicle_id
在这种情况下,当您在$VehicleID中为值时,这个新表中将有4行。
https://stackoverflow.com/questions/28767672
复制相似问题