2014-07-14 67 views
-1


我正在嘗試顯示與車輛ID相關的租賃金額和天數。我第一次顯示汽車名稱讓用戶點擊。如何循環使用相同的ID數據,而不使用foreach重複顯示ID?

當顯示汽車名稱時,它必須顯示出租天數和出租金額。 但是,由於我在後臺存儲了三天的時間和金額,所以它在前端也循環了三次。

這樣可以很清楚:

//在後端, 我存儲在天量一輛車多次而不是一次
carName
carname1 1 50
carname1 7 650
carname1 30 2000

我打電話的carName,畫廊,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."&nbsp;"; 
} 
echo "</td></tr>"; 

echo"<tr><td colspan='2' class='days'>Amount : "; 
$amount[]=$n['rental_amount']; 
foreach($amount as $amt) 
{ 
echo "RM ".$amt."&nbsp;"; 
} 
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

與我想顯示像:

carname 1
天:1   amt:50

+0

什麼部分返回ID?您已將** $ n {'carMake_id'} **位 – ggdx

+0

@ dwhite.me註釋掉,我將其顯示爲只顯示id,以便更容易理解,但實際代碼不顯示....這是汽車的ID,所以應該carName_id,如果我真的把它放在代碼中。 – Lana

+0

好的,告訴我們你有什麼**實際**完成。你所問的是有些模糊的。 – ggdx

回答

0

在主抓取環棧要在索引數組這樣

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_ *函數,因爲它們已被棄用。考慮移動到mysqliPDO

+0

,感謝您的幫助,我試過了,但它對我不起作用......我需要的是根據護理名稱循環瀏覽當天和租金數量。我相信通過foreach循環可以實現這一點,但不要不知道怎麼樣? – Lana