質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

受付中

phpとmysqlを用いた検索データの複数表示

hyou143
hyou143

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1回答

0評価

0クリップ

2閲覧

投稿2018/01/02 02:25

こちらのメコログ様のmysqlに画像を保存し呼び出すプログラム(http://mekori.hatenablog.com/entry/2013/07/04/020835)を参考にフォームページから画像や文字をmysqlに保存し呼び出すプログラムを作成しました。
フォームページからデータを登録する際、緯度経度の値を手入力で行い画像を呼び出す時にはこの2つの数値を入力しして合致したデータを表示するようにしました。しかし現時点では合致したデータの先頭だけが呼び出されほかに合致しているデータがある場合でも呼び出されません。
緯度経度の数値に合致したデータを複数表示させるにはどのような方法があるかアイデアをくださるとありがたいです。
下に2つのプログラムの一部を記載します。

/*set_img.php*/ $file_dir = 'C:\xampp\htdocs\sample\image\\'; //データベースに接続する $db_link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); //取得する画像のリンク $file_path = $file_dir. $_FILES["uploadfile"]["name"]; //ファイル移動処理 if(move_uploaded_file($_FILES["uploadfile"]["tmp_name"],$file_path)){ $img_dir = "./image/"; $img_path = $img_dir. $_FILES["uploadfile"]["name"]; $thumbnail_path = $img_dir. $thumbnail_name; }else{ echo "画像が選択されていません!"; exit; } $img_file = file_get_contents($img_path); // 画像の取得 //$img_file = $_FILES["uploadfile"]["tmp_name"]; //画像取得が成功した場合 $name = $_POST["name"]; $comment = $_POST["comment"]; $longitude = $_POST["longitude"]; $latitude = $_POST["latitude"]; //$word = $_POST["word"]; $lon_minus = $longitude - 0.0005; $lon_plus = $longitude + 0.0005; $lat_minus = $latitude - 0.0005; $lat_plus = $latitude + 0.0005; //if($word == 67){ if($img_file){ //画像をバイナリに変換 $img_binary = mysqli_real_escape_string( $db_link, $img_file ); //画像を保存するSQL文の実行 $result = mysqli_query( $db_link, 'INSERT INTO img_table (name,img_col,longitude,latitude,comment) VALUES ("'.$name.'","'.$img_binary.'","'.$longitude.'","'.$latitude.'","'.$comment.'")'); //結果の表示 if($result){echo "画像をデータベースに保存しました。"; }else{ echo "保存できませんでした。"; } } /*view_img.php*/ session_start(); $_SESSION["longitude"] = $_POST["longitude"]; $_SESSION["latitude"] = $_POST["latitude"]; $com_longitude = $_POST["longitude"]; $com_latitude = $_POST["latitude"]; //下の2つの関数を使い、緯度軽度に合致したテキストを表示する。 CallImg($com_longitude,$com_latitude); //指定した緯度経度を持つテキストを表示する関数 function CallImg($longitude_num,$latitude_num){ print TextSearchDB($longitude_num,$latitude_num); echo nl2br("\n"); } //データベースから、指定した緯度経度を持つテキストファイルを検索する関数。 function TextSearchDB($longitude_num,$latitude_num){ $com_longitude_minus = $longitude_num - 0.0005; $com_longitude_plus = $longitude_num + 0.0005; $com_latitude_minus = $latitude_num - 0.0005; $com_latitude_plus = $latitude_num + 0.0005; //データベースへ接続する $db_link1 = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); //指定した緯度経度のテキストを検索 $serch_query1 = mysqli_query($db_link1,"SELECT * FROM `img_table` WHERE `longitude` BETWEEN '".$com_longitude_minus."' AND '".$com_longitude_plus."'"); $serch_query2 = mysqli_query($db_link1,"SELECT * FROM `img_table` WHERE `latitude` BETWEEN '".$com_latitude_minus."' AND '".$com_latitude_plus."'"); $row_lon = mysqli_fetch_array($serch_query1); $row_lat = mysqli_fetch_array($serch_query2); if($row_lon['comment']==$row_lat['comment']){ header( 'Content-Type: text/html' ); echo $row_lon['comment']; }else{ echo"一致したデータがありませんでした"; } $close_flag1 = mysqli_close($db_link1); }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。