2016-08-19 19 views
-1

$ row ['mykey]]という名前の変数がテーブル1のクエリから作成されていますが、私は をそのページに表示していますを探しています。今度は、この変数を使用してテーブル2の新しいクエリ を設定し、テーブル2のcontractor_lockと一致する場合にのみ結果を表示する必要があります。 $ stmt1はテーブル全体を表示するためにはうまく動作しますが、$ stmt2を使用したいがデータ結果は得られません。助けてくれてありがとう!2つの異なるテーブルの値を比較して表示する場合

try { 
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 


$stmt1 = $conn->prepare("SELECT client_id, companyname, contact, contractor_lock FROM table_two"); 


$stmt2 = $conn->prepare("SELECT client_id, companyname, contact, contractor_lock FROM table two WHERE contractor_lock = $row['mykey']"); 

$stmt->execute(); 
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
    echo $v; 
} 
} 

catch(PDOException $e) { 
echo "Error: " . $e->getMessage(); 
} 
$conn = null; 
} 
+1

ようにすべきですか? 2つのテーブルに共通のデータ値を共有するフィールドがあるため、JOINされた単一のクエリを実行できます。 –

+0

これは新しく、joinを一度も使用していません。これは私の頭の中にあった論理だった。私は最後の4時間のために研究している –

+0

を学ぶことがたくさんあり、私の行き止まりに来ました。それはとてもシンプルでなければならないようですね! –

答えて

0

あなたはそれを文字列として解釈される可能性がありますので、代わりにそれを直接含むのstmt2から$row['mykey']を連結する必要があります。

あなたは2つのクエリを実行している理由は、この

$stmt2 = $conn->prepare("SELECT client_id, companyname, contact, contractor_lock FROM table two WHERE contractor_lock = ?"); 
$stmt2->execute($row['mykey']); 
+0

それは問題ではありません。 MySQLはそれを補うでしょう。 –

+0

kamal、私はあなたの変更を行うときに次のエラーが表示されますが、rt133813は私が探している値です。エラー:SQLSTATE [42S22]:列が見つかりません:1054 'where句'の 'rt133813'列が不明です –

+0

さらに、 'rt133813'はOPのコメントで示されている整数ではなく、文字列です。 –

関連する問題