2016-11-20 115 views
0

我知道有幾個類似於這個問題的問題,我已經看過他們,但仍然沒有設法修改我的函數以便工作。PHP while while循環只返回一個值

所以我有這個函數getCar_2();在functions.php頁面中。問題是它應該顯示更多的汽車,因爲我在數據庫中有更多的汽車,但它只顯示最後一輛汽車。和getCar_1()一樣,這兩個函數也是一樣的。

下面是函數:

<?php 
function getCar_2(){ 
global $connect; 

$text = ""; 

$get_car_2 = "SELECT * FROM cars WHERE category_id=5"; 
$get_car_result_2 = mysqli_query($connect, $get_car_2) or die(mysqli_query()); 

while($row_car_2 = mysqli_fetch_array($get_car_result_2)){ 
    $car_model_2 = $row_car_2['car_name']; 
    $car_image_2 = $row_car_2['car_image']; 

    if(isset($car_model_2) && isset($car_image_2)){ 
     $text = " 
      <div id='' style='white-space:nowrap;'> 
      <p id='model' style='display:inline-block; margin-right:10px; margin-left:10px; padding-top:10px; position:relative; bottom:35px;'>$car_model_2</p></a> 
      <img src='administrator/images/$car_image_2' width='120' height='80' style='display: inline-block; box-shadow: 0 0 11px #000;'/><br> 
      </div>"; 
     } 
    } 
    return $text; 
} 
?> 

,並顯示在另一頁上是這樣的:

<?php 
$car_1 = getCar_1(); 
$car_2 = getCar_2(); 
if(!empty($car_1) || !empty($car_2)){ 
?> 

<div class="block"> 
    <div class="up"> 
     <div class="title"><h4>Cars</h4></div> 
    </div> 
    <div class="down"> 
     <div class="column_1"><b><?php echo $car_1; ?></b></div> 
     <div class="column_2"><b><?php echo $car_2; ?></b></div> 
    </div> 
</div> 

<?php 
} 
?> 
+0

期待你的代碼應該返回空字符串或世界上第一輛擁有isset($ car_model_2)&& isset($ car_image_2)...刪除循環內的回報.. – scaisEdge

回答

1

你是不是串聯的text變量,因此在每次循環傳遞將只包含最後的價值。您應該使用連接符.=,而不是賦值運算符=

$text .= " 
+0

非常感謝你的工作! – AndreiCT

1

要覆蓋以前的行值在使用之前。貌似要追加新行成果現有一個,對於..只需要添加一個線和一個週期...

$text =''; //define $text so you can append to it 

if(isset($car_model_2) && isset($car_image_2)){ 

    $text .= " 
    <div id='' style='white-space:nowrap;'> 
    ...... 

通知的.=到新的結果追加到上一行。 這種方式附加變量稱爲串聯。

期間也用於連接打印的字符串和變量。 贊。 。 。

echo '<div class="column_1"><b>'. $car_1.'</b></div>'; 
+0

謝謝,我試了好幾個小時才解決這個問題,現在感覺有點傻,不知道一個點能解決問題。 – AndreiCT