PHP+MYSQLで任意の数を入力し、その入力結果から演算をし、該当するデータを表示させたいです。



例えば以下のようなデータがあるとします。
x y z
--------------
A,14,99
B,23,11
C,45,12
D,56,78

ここで、
yの抽出する範囲=入力した値a±5
zの抽出する範囲=入力した値b±15
とします。

入力値aが25、入力値bが15だとすると、2つの範囲に該当するのはBだけですので、B,23,11と表示されるような感じです。



実際の範囲を求める計算式は複雑でifやfloorなどが入ります。

プログラムソースをそのまま書いていただいても構いませんし、参考となるページでも構いません。
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2010/02/08 01:19:36
  • 終了:2010/02/15 01:20:03

回答(1件)

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912010/02/08 01:51:56

ポイント60pt

a,b がそれぞれPOSTにより 渡されると仮定して、だいたい下記のような流れでしょうか。

<?php
// 変数を設定
    $a = $_POST['a'];
    $b = $_POST['b'];

// クエリを作成
    $query = 'SELECT * FROM tbl';
    $query .= ' WHERE (y >= '.($a - 5).')';
    $query .= ' AND   (y <= '.($a + 5).')';
    $query .= ' AND   (z >= '.($b - 15).')';
    $query .= ' AND   (z <= '.($b + 15).');';

// クエリを実行
    $username = 'dbuser';
    $password = 'dbpass';
    $host     = 'dbhost';
    $database = 'dbname';

    $link = mysql_connect( $host, $username,$password) or  die('接続できませんでした: ' . mysql_error());
    mysql_select_db( $database, $link);
    $result = mysql_query($query);

// 結果を表示
    while ($row = mysql_fetch_assoc($result)) {
        echo $row['x'].','.$row['y'].','.$row['z']."<br>\n";
    }
    mysql_close($link);
?>

不明な点はコメントで補足します。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません