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

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

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

これはSQL文のJOINに関するタグです。リレーショナルデータベースシステムの二つ以上のテーブルを結合する際に、この構文が利用されます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

2023閲覧

2つのテーブルを結合して抽出するも内容が固定される

kitsunetsuki

総合スコア16

JOIN

これはSQL文のJOINに関するタグです。リレーショナルデータベースシステムの二つ以上のテーブルを結合する際に、この構文が利用されます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/10/01 14:00

前提・実現したいこと・発生している問題

mySQLに触れ始めて1ヵ月の素人で、初歩的すぎるかもしれませんがご教授願います。
2つのテーブルを結合して抽出→表示は出来たのですが
aaaa.php?client_id=*** の***部分を変えても最初に表示されたものから一切変わらず
?client_id=***を消して、phpのみで表示させても同じ画面が出続けます。

普通にidを受け渡して、それに伴った値を表示させたいです。

該当のソースコード

db1 = ooo
(client_id , client_name)
db2 = xxx
(ag_main , process_name)
というテーブルがあったとして・・

<?php //DBへ接続 $pdo = new PDO('mysql:dbname=client;host=localhost','root',''); //文字コードを指定 $stmt = $pdo->query('SET NAMES utf8'); //データ登録SQL作成 $stmt = $pdo->prepare("SELECT ooo.client_id,xxx.client_id FROM ooo INNER JOIN xxx ON ooo.client_id = xxx.client_id;"); $stmt->bindParam(':client_id', $_GET['client_id']); //SQL実行 $flag = $stmt->execute(); //エラー処理 if($flag == false){ echo "SQLエラー"; }else{ $result = $stmt->fetch(); //$resultからカラムの配列を取り出す $ag_main = array_column($result,'ag_main'); $client_name = array_column($result,'client_name'); $process_name = array_column($result,'process_name'); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> 取引台帳No. <?php echo $result['agree_id']; ?><br /> 営業担当:<?php echo $result['client_iname']; ?><br /> 契約処理担当:<?php echo $result['process_iname']; ?><br />

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/10/01 14:13

ソースコードはマークダウンのcode機能を使ってください。質問・解説内容とコードとの境目が不明瞭となりますし、code機能では正しくコードをコピペできるようになりインデントもつけられて読みやすくなり、再現確認も容易となりますので、的確な回答が得やすくなります。
guest

回答1

0

ベストアンサー

$stmt = $pdo->prepare("SELECT ooo.client_id,xxx.client_id FROM ooo INNER JOIN xxx ON ooo.client_id = xxx.client_id;");

$stmt->bindParam(':client_id', $_GET['client_id']);

SQLのどこにも :client_id がないですね。
どうしたいのかわからない部分はありますが、SQLにwhere句とかに入れる必要があるのでは。
where ooo.client_id=:client_id

投稿2018/10/01 14:17

編集2018/10/01 14:17
m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kitsunetsuki

2018/10/01 15:16

詳しく理解は出来ていないままで恐縮ですが、SELECT * にしてwhere句を入れて見たら想定通りに動いてくれました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問