0

こんにちは、名前が定義済みの $uk_array にある名前のいずれかを含む場所の列にある行の数を数えようとしています。

mysql は、"Dublin, Ireland" が 1 つありますが、配列の名前に一致する "there are ()" 列に値がないことを出力します。

コードは次のとおりです。

    <?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";

AND 演算子を OR 演算子に切り替えます。そうしないと、フィールドに 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 に答える