您好我正在尝试计算位置列中有多少行,其中名称包含预定义$ uk_array中的任何名称。
mysql打印出我的列“there()”中没有任何值与数组中的名称匹配,尽管有一个“都柏林,爱尔兰”。
以下是代码:
<?php
include'connect.php';
$uk_array = array('Liverpool','London','London UK','UK','London',
'Dublin, Ireland','Manchester','Norwich','United Kingdom','Norwich','Duplin','England','ENGLAND',
'united kingdom');
$string = '';
foreach($uk_array as $term=>$i) {
$string = $string."location LIKE '%".$i."%' AND";
}
$string = substr($string, 0, -5);
$query="SELECT COUNT(location) as location FROM tweets WHERE $string";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo "There are ". $row['location']."";
}
?>
答案 0 :(得分:4)
你应该这样做
$string = $string."location LIKE '%".$i."%' OR";
使用OR运算符切换AND运算符,否则该字段必须包含uk_array中的所有值。
另外,你有一个拼写错误 - Duplin?
编辑:更多错误
foreach($uk_array as $term=>$i) {
if($term) $string .= ' OR '; // only append OR if it's not the first one
$string .= "location LIKE '%".$i."%'";
}
答案 1 :(得分:0)
您可能想要使用 OR 运算符
// change this
// $string = $string."location LIKE '%".$i."%' AND";
// to
$string = $string."location LIKE '%".$i."%' OR";
// and
// $string = substr($string, 0, -5);
// to
$string = substr($string, 0, -3);