テーブル同士の結合などはinnerjoinやouterjoinで行いますが、
1ページで2つ以上selectを行いたい場合、私はいつも下記の様にデータ取得しております。
sqlクエリー
function Create_PDO() {
$db['host'] = "localhost"; // DBサーバのURL
$db['user'] = "user"; // ユーザー名
$db['pass'] = "pass"; // ユーザー名のパスワード
$db['dbname'] = "db_name"; // データベース名
$db['port'] = "3306";
//データベース情報を格納
$dsn = sprintf('mysql:host=%s; dbname=%s; port=%s; charset=utf8', $db['host'], $db['dbname'], $db['port']);
//try-catchの例外を受ける為に必要
$option = array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION);
//インスタンス生成
$pdo = new PDO($dsn, $db['user'], $db['pass'], $option);
return $pdo;
}
//セレクト1
$pdo = Create_PDO();
$stmt = $pdo->prepare("
SELECT * FROM table1 WHERE id = ?
");
$stmt->execute(array("5"));
$select1 = $stmt->fetch(PDO::FETCH_ASSOC);
//セレクト2
$stmt = $pdo->prepare("
SELECT * FROM table2
");
$stmt->execute();
$select2 = $stmt->fetchAll();
php表示方法
<?php
//select1のカラム「test」のみの値を表示
echo $select1['test'];
//select2のカラム「shop」のレコードを全て表示
foreach ($select2 as $key => $value) {
echo $value['shop'];
}
?>