-1

簡単な質問です。

ミニマップを作成していますが、22 フィールド離れた町 (町テーブルから) だけが必要です。町ごとに int x と y があり、それらを使用して町がどこにあるかを判断します。

最初に頭に浮かんだのは、WHERE x < 56 および x > 34 を使用することでした...しかし、dose sql にそのオプションがあるかどうかわからないので、22 フィールド離れた町だけを取得する方法を尋ねたかったのです。

クエリ:

'SELECT (id,x,y) 
FROM towns 
WHERE x >= \''.($x-22).'\' 
AND x <= \''.($x+22).'\' 
AND y >= \''.($y-22).'\' 
AND y <= \''.($y+22).'\''

エラー: エラーは警告です: mysqli_fetch_array() は、パラメーター 1 が mysqli_result であると想定しています。ブール値は –</p>

4

2 に答える 2

1

(here_x-there_x)*(here_x-there_x) + (here_y-there_y)*(here_y-there_y) < 22*22

ピタゴラスが助けに!

于 2013-07-04T21:56:39.063 に答える
1

あなたは間違いなく使用できます:

WHERE x < 56 AND x > 34

もありますBETWEEN

WHERE x BETWEEN 35 AND 55

BETWEENは包括的であるため、 >= AND <= と同等です

于 2013-07-04T21:55:30.840 に答える