2016-11-20 63 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