2016-04-28 14 views
0

このクエリはうまくいきますが、問題は別のテーブルroomsにある部屋番号を取得する必要があることです。のみroom_idを持ってreservationsテーブルから取り出したデータを下記の問合せ:このクエリ内の別のテーブルの値を取得する

$select_table = "SELECT id, name, phone, email, address, country, adults, childs, purpose, booking_type, remarks, checkin, checkout, room_id, status, paid, date FROM reservations WHERE DATE_FORMAT(date, '%Y-%m') = '$date' ORDER BY id DESC"; 
$stmt = $db->prepare($select_table); 
$stmt->execute(); 
$rows = $stmt->fetch(PDO::FETCH_ASSOC); 
if ($rows) 
{ 
getcsv(array_keys($rows)); 
} 
while($rows) 
{ 
getcsv($rows); 
$rows = $stmt->fetch(PDO::FETCH_ASSOC); 
} 

どのように地球上で私はroomsテーブルから上記のクエリ内の列numberを得ることができますか?

+0

'rooms'を試すことはできますか?予約表の列room_idで は部屋のテーブル – Webeng

+0

は彼らがある** WARNING **:PDOを使用している場合、あなたがプリペアドステートメントを使用する必要がありますこのコードで重大な[SQLインジェクションのバグ](http://bobby-tables.com/)があるため、ユーザーデータを別々の引数として指定してください。文字列補間や連結を使用せず、代わりに[prepared statements](http://php.net/manual/en/pdo.prepared-statements.php)を使用してください。この問題やその他の問題については、[PHP The Right Way](http://www.phptherightway.com/)を参照してください。 – rodrix

+1

からIDにrefferedさ \t ID、名前、番号、レート,,容量、状況を次のように – tadman

答えて

2

Join客室のテーブル!

SELECT r.id, r.name, r.phone, r.email, r.address, r.country, r.adults, r.childs, r.purpose, 
     r.booking_type, r.remarks, r.checkin, r.checkout, r.room_id, r.status, r.paid, r.date, 
     rooms.number 
FROM reservations r 
JOIN rooms ON r.room_id = rooms.id 
WHERE DATE_FORMAT(r.date, '%Y-%m') = '$date' 
ORDER BY r.id DESC 

(私は何度も何度もreservationsを入力するのは疲れたので、私はそのテーブルのテーブルエイリアスrを作成します。)

+0

私は空白のデータメイト – rodrix

+0

あなたは前に取得していない? – jarlh

+0

私が得るテーブルは両方ともブランクのデータです。実際にはcsvテーブルとしてダウンロードしています。空のデータは取得されません。 – rodrix

0

変更2つのテーブルを結合することにより部屋番号が含まれるようにクエリ:

$query = "SELECT id, name, phone, email, address, country, adults, childs, purpose, booking_type, remarks, checkin, checkout, room_id, status, paid, date , ro.number AS number FROM reservations AS r JOIN rooms AS ro ON r.room_id=ro.id WHERE DATE_FORMAT(date, '%Y-%m') = '$date' ORDER BY id DESC"; 

rooms表はidフィールドを持っていると仮定すると、そのreservation.room_idは、クエリが動作しますrooms.idを参照する外部キーです。

+0

はい、あなたは正しいですが、空白のデータを取得しています – rodrix

+0

元の投稿にデータベーステーブルの構造が含まれています – dimlucas

+0

ありがとう – rodrix

0

あなたは、この列がテーブルにあるか

SELECT rooms.number, reservations.id, name, phone, email, address, country, 
    adults, childs, purpose, booking_type, remarks, checkin, checkout, room_id, 
    status, paid, date FROM reservations left join rooms on reservations. room_id =rooms.id 
WHERE DATE_FORMAT(date, '%Y-%m') = '$date' ORDER BY id DESC 
関連する問題