人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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などが入ります。

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

●質問者: sitterutsumori
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:23 MySQL PHP ソース データ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●60ポイント

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ