0

您好,我正在尝试计算位置列中有多少行,其中名称包括预定义的 $uk_array 中的任何名称。

mysql 打印出我的列“there are ()”中没有任何值与数组中的名称匹配,尽管有一个“Dublin, Ireland”。

这是代码:

    <?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']."";

    }


    ?>
4

2 回答 2

4

你应该做

$string = $string."location LIKE '%".$i."%' OR";

用 OR 运算符切换 AND 运算符,否则该字段必须包含 uk_array 中的所有值。

另外,你有一个错字——都柏林?

编辑:更多错误

foreach($uk_array as $term=>$i) {
    if($term) $string .= ' OR '; // only append OR if it's not the first one
    $string .= "location LIKE '%".$i."%'";
}
于 2012-07-30T13:16:26.010 回答
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);
于 2012-07-30T13:19:35.793 回答