我正在尝试显示与汽车id相关的租赁金额和天数。我首先为用户点击的car Make显示车名。
显示汽车名称时,必须同时显示租车天数和租车金额。但是,由于我在后端存储了三次汽车id的天数和金额,因此它在前端也循环了三次。
让它更清晰:
//后端我多次存储一辆车的天数和金额,而不是一次
carName 天数量
Carname1 1 50
Carname1 7 650
Carname1 30 2000
我像这样调用carName,gallery,rental_days和rental_amount:
if(isset($q))
{
mysql_select_db($database);
/*$query_showmake="SELECT carName FROM car_name WHERE carMake_id='$q'";*/
$query_showmake="SELECT rental.rental_days,rental.rental_amount,rental.carName_id,car_name.carName_id,car_name.carName,car_name.carMake_id,gallery,gallery_id,gallery.gallery,gallery.carName_id,car_make.carMake_id FROM rental,car_name,gallery,car_make WHERE car_name.carName_id=gallery.carName_id AND car_name.carMake_id='$q' AND car_name.carMake_id=car_make.carMake_id AND rental.carName_id=car_name.carName_id ORDER BY rental_days ASC";
$result_showmake=mysql_query($query_showmake)or die(mysql_error());
while($row_showmake=mysql_fetch_array($result_showmake))
{
$carMake_show=$row_showmake['carName'];
$carmake[$row['carName_id']][]=$row_showmake;
/* echo $carMake_show.'<br/>';*/
}
?>
<table border="0" style="border-collapse:collapse">
<?php
foreach($carmake as $make=>$name)
{
foreach($name as $n)
{
echo "<tr>";
echo "<td class='carname'>".$n{'carName'}.'</td><td rowspan="2" valign="top" class="cardetail">Car Details</td></tr>';
/*echo $n{'carMake_id'}.'<br/>';
echo $n{'gallery'}.'<br/>';*/
echo"<tr><td class='img'><img src='management/uploads/{$n['carMake_id']}/{$n['gallery']}' width='400' height='200'>";
echo "</td></tr>";
echo"<tr><td colspan='2' class='days'>Days : ";
$days[]=$n['rental_days'];
foreach($days as $day)
{
echo $day." ";
}
echo "</td></tr>";
echo"<tr><td colspan='2' class='days'>Amount : ";
$amount[]=$n['rental_amount'];
foreach($amount as $amt)
{
echo "RM ".$amt." ";
}
echo "</td></tr>";
echo"<tr><td height='50' colspan='2'></td></tr>";
}
}?>
</table>
<?php
}
结果如下:
carName 1
图1
天1
量50
carName 1
图1
天7
数量650
carName 1
图1
30天
数量2000
AND我想显示如下:
carname 1
天:1,,7,,30
am50 650 2000年
在主取循环堆栈中,您希望在索引数组中显示的值如下
while($row = mysql_fetch_array($result_showmake)) {
$carmake[$row['carName_id']]['amounts'][] = $row['rental_amount'];
$carmake[$row['carName_id']]['days'][] = $row['rental_days'];
$carmake[$row['carName_id']]['images'][] = $row['gallery'];
}
然后使用 implode
将堆叠值呈现为空格分隔的字符串
foreach($carmake as $id => $make) {
print "carName $id'n"
. "images " . implode(' ', $make['images']) . "'n"
. "days " . implode(' ', $make['days']) . "'n"
. "amounts " . implode(' ', $make['amounts']) . "'n";
}
顺便说一句,你不应该使用mysql_*函数,因为它们已经被弃用了。考虑搬到 mysqli
或 PDO
。