我正在租车网站上工作。我设法使用foreach关联数组显示每辆车的相关信息。现在的问题是在每张车的表格中显示租赁天数和数量......
例如:
car 1
image for car 1
days 1 7 30
amt 100 300 1500
car 2
image for car 2
days 1 7 30
amt 250 400 3500
依此类推......如何用这段代码实现这个目标?
<?php
//select query
$query_showall = "SELECT rental.*,car_name.*,gallery.*,car_make.* FROM rental,car_name,gallery,car_make WHERE car_name.carName_id=gallery.carName_id AND car_name.carMake_id=car_make.carMake_id
AND rental.carName_id=car_name.carName_id GROUP BY rental.carName_id";
//while loop
$result_showall = mysql_query($query_showall) or die(mysql_error());
while ($row_showall = mysql_fetch_array($result_showall)) {
$carMake_all = $row_showall['carName'];
$carmake_1[$row_showall['carName_id']][] = $row_showall;
$car_id[] = $row_showall['carName_id'];
}
// foreach to display all info
foreach ($carmake_1 as $make_1 => $name_1) {
foreach ($name_1 as $n_1) {
if (isset($n_1['detail'])) {
$detail_1 = $n_1['detail'];
$detail_1 = nl2br($detail_1);
} else {
$detail_1 = "Car Detail";
}
?>
<tr>
<td class='carname'><h2><?php echo $n_1{'carName'}; ?></h2></td>
<td rowspan="2" valign="top" class="cardetail"><?php echo $detail_1; ?>
<br/><br/>
<a class="book" href="book_now.php?name_id=<?php echo $n_1['carName_id']; ?>">Book <?php echo $n_1['carName_id']; ?></a>
</td></tr>
echo"<tr><td class='img'>{$n_1['carName_id']}<img src='management/uploads/{$n_1['carMake_id']}/{$n_1['gallery']}' width='400' height='200'>";?>
</td></tr>
<tr>
<td>
.....here to display days and amounts for each car....
</td>
</tr>
租赁表的数据库结构
rental_id rental_days rental_amount carName_id
1 1 50 101
2 7 550 101
3 30 5050 101
我试图通过保留上述查询来显示每辆车的日期和金额
echo“{$ n_1 ['rental_days']}”;
echo“{$ n_1 ['rental_amount']}”;
它仅显示在租借表中为该车辆ID键入的第一个数据。显然没有循环。任何人都建议我如何循环上面的代码?
答案 0 :(得分:0)
您有一个排序的数据数组,其中包含半复制数据,如:
id make model days_rented amount paid
1 ford escort 10 500
1 ford escort 24 1100
2 honda accord 5 350
所以你要跟踪最后一个id。如果当前id与最后一个id不同,则显示新车的html。如果您再次获得同一辆车,则只需显示租车详情。
$last_car_id = -1;
while ($row = mysql_fetch_array($result_showall)) {
$car_id = $row['carname_id'];
if ($last_car_id != $car_id) {
// we have a new car
if (!$last_car_id === -1) { // if this is not the very first car
// close the rental details table, and the car's html container
}
// build html for new car, display all details that are specific to this car like make and model
// build html to open a table containing rental details
$last_car_id = $car_id;
}
// html to display rental details as a table row
}
// close the rental details table, and the car's html container (same code as above)