0

入力として提供された緯度と経度の半径1km内のすべてのユーザーを見つけるphp Webページがあります。緯度と経度がデータベースへの入力として与えられ、出力として 10 人のユーザーのリストが生成されます。デバイス ID を取得した後、この生成されたリストの各ユーザーにメッセージを送信したいと考えています。しかし、私はそうすることができません。助けてください

$sql = "SELECT number, userID, 
( 6371 * acos( cos( radians(19.143) ) 
               * cos( radians( latitude ) ) 
               * cos( radians( longitude ) 
                   - radians(72.831) ) 
               + sin( radians(19.143) ) 
               * sin( radians( latitude ) ) 
             )
) AS distance 
FROM users
WHERE device = 'android' 
HAVING distance < 2 
ORDER BY distance;";

$result = mysql_query($sql,$link);

if (mysql_num_rows($result) != 0) 
{
    while($row = mysql_fetch_assoc($result))
    {
                //send notification code
    }
}

このコードを実行すると、エラーが発生します

mysql_fetch_assoc() は、パラメーター 1 がリソースであり、..

助けてください。前もって感謝します。

4

3 に答える 3

0

最初に存在または結果を確認します

if (!$result) {
    echo mysql_error();
    exit;
}

終了する場合は、クエリをデバッグします。

于 2013-01-02T14:50:29.430 に答える
0

これを試してください

mysql_fetch_array($result,**MYSQL_ASSOC**)

代わりに:

mysql_fetch_assoc()

それはあなたの問題を解決するかもしれません

于 2013-01-02T14:30:25.283 に答える
-1

最初に考えた:ORDER BY distance;";エラーが発生します。試してみてください:ORDER BY distance ASC"; 結果に文字列 - エラー メッセージが含まれていると思いますmysql_error()。結果を取得する前に、空かどうかを確認してみてください。

上記の想定 - 接続が機能し、$link が設定されている

2番目の考え: に従って: http://php.net/manual/en/function.mysql-query.php

**The query string should not end with a semicolon. 

クエリ内のデータは適切にエスケープする必要があります。**

于 2013-01-02T14:17:14.250 に答える