クエリの結果を配列に取得する方法と、結果をそれぞれ比較して 1 つの配列にマージする必要があります。
私は 3 つのクエリを持っています。コーディングの何が問題なのかわかりません。最善を尽くしただけでは不十分なので、特に SQL と php の専門家を助けてください。
ここに私のコードがあります:
<?php
$a = $p['id'];
$query1 = mysql_query("SELECT id FROM prereservation where '$arrival' BETWEEN arrival and departure and room_id ='$a' and status = 'active'");
$rows1 = mysql_fetch_array($query1);
$query2 = mysql_query("SELECT id FROM prereservation where '$departure' BETWEEN arrival and departure and room_id ='$a' and status = 'active'");
$rows2 = mysql_fetch_array($query2);
$query3 = mysql_query("SELECT id FROM prereservation where arrival > '$arrival' and departure < '$departure' and room_id ='$a' and status = 'active'");
$rows3 = mysql_fetch_array($query3);
$sample = array_unique(array_merge($rows1, $rows2, $rows3));
?>
表示は次のようになります。
<select id="select" name="qty[]" style=" width:50px;" onchange="checkall()">
<option value="0"></option>
<? $counter = 1; ?>
<? while ($counter <= ($p['qty']) - $????????) { ?>
<option value="<?php echo $counter ?>"><?php echo $counter ?></option>
<? $counter++;
}?>
</select>
たとえば、出力は次のようになります。
$rows1 = array(id= 48, 55, 51, 53)
$rows2 = array(id= 48, 49, 51, 52)
$rows3 = array(id= 48, 49, 50, 51)
$sample = array_unique(array_merge($rows1, $rows2, $rows3))
したがって、サンプルの出力は次のようになります。
$sample = array(id= 48, 49, 50, 51, 52, 53)
テーブル prereservation の列は、' id '、' arrival ' 、' department '、 ' room_id '、 ' qty '、 ' status ' です。
私のテーブルの事前予約では、各IDの*数量*が異なるため、次のようなサンプルの各IDの数量の合計が必要です。
id | qty
48 | 2
49 | 1
50 | 1
51 | 3
52 | 1
53 | 3
$total = sum(qty); which is 11
各idごとにこれらの数量の合計を取得するクエリを作成する方法を教えてください。また、クエリごとにエラーがあることがわかっているため、最初の3 つのクエリを確認してください。array_mergeとarray_uniqueを取得します。どうもありがとうございました。
<select id="select" name="qty[]" style=" width:50px;" onchange="checkall()">
<option value="0"></option>
<? $counter = 1; ?>
<? while ($counter <= ($p['qty']) - $total) { ?>
<option value="<?php echo $counter ?>"><?php echo $counter ?></option>
<? $counter++;
}?>
</select>
ここに私のデータベース:
table rooms
id | type | qty
---|---------|-----
11 | single | 50
12 | double | 50
13 | deluxe | 20
table preservation
id | arrival | departure | room_id | qty | status
---|-------------|-------------|---------|-----|-------
48 | 05/11/2012 | 11/11/2012 | 11 | 2 | active
49 | 06/11/2012 | 11/11/2012 | 11 | 1 | active
50 | 06/11/2012 | 08/11/2012 | 11 | 1 | active
51 | 05/11/2012 | 07/11/2012 | 11 | 3 | active
52 | 06/11/2012 | 09/11/2012 | 11 | 1 | active
53 | 07/11/2012 | 07/11/2012 | 11 | 3 | active
私のディスプレイでは、テーブルルーム(id = 11)から選択タグがあり、オプションはqtyであり、テーブル保存(room_id = 11)からのqtyの合計によって差し引かれます