2014-12-04 52 views
2

我想打一個數組,看起來像這樣:如何在php中的while循環中創建if else條件?

qqq = [[a,b],[c,d]]; 

但隨着我得到它的代碼使輸出看起來像這樣:

qqq= [[a,b],[c,d],]; 

我應該怎麼做才能排除額外的分號?

var qqq = [<?php 
     $aw = "select * from city;"; 
     $wa = mysql_query($aw); 

    while($aa = mysql_fetch_array($wa)) 
     {  
      $cc = $aa['Coordinate_id']; 
      $bb = $aa['city_name']; 

      echo "[$cc,$bb],"; 

     } 
?> ]; 
+1

強制性請使用PDO或mysqli的功能,因爲MySQL的功能depricated – RichardBernards 2014-12-04 14:44:12

回答

2

替換此:

while($aa = mysql_fetch_array($wa)) 
{ 
    $cc = $aa['Coordinate_id']; 
    $bb = $aa['city_name']; 
    echo "[$cc,$bb],"; 
} 

這樣:

$result = ''; 
while($aa = mysql_fetch_array($wa)) 
{ 
    $cc = $aa['Coordinate_id']; 
    $bb = $aa['city_name']; 
    result.="[$cc,$bb],"; 
} 
echo trim($result,','); 
+0

我不工作:( – NeonCurls 2014-12-04 15:14:15

+0

你是什麼意思它不能正常工作嗎?你可以在發生這種改變後發佈一個錯誤嗎? – krzysiej 2014-12-04 15:45:01

3

既然你要一個JSON編碼數組,請用下面的代碼片段實現如出一轍:

var qqq = <?php 
    $aw = "select * from city;"; 
    $wa = mysql_query($get_marker); 

    $arr = array(); 
    while($aa = mysql_fetch_array($wa)) { 
     $arr[] = array($aa['Coordinate_id'], $aa['city_name']); 
    } 
    echo json_encode($arr); 
?>; 
+0

使用PDO或mysqli的'_fetchAll()'函數,你甚至可以省略循環。 – 2014-12-04 14:48:38

+0

@GeraldSchneider Yep ...因此,對問題的評論使用PDO或mysqli =) – RichardBernards 2014-12-04 14:49:15

+0

它只輸出最後的數據:( – NeonCurls 2014-12-04 15:15:43

0
$num = mysql_num_rows($aw); 

:取代echo你應該使用內爆這樣

<?php 
$aw = "select * from city;"; 
$wa = mysql_query($get_marker); 
$arr = []; 
while($aa = mysql_fetch_array($wa)) 
{  
    $cc = $aa['Coordinate_id']; 
    $bb = $aa['city_name']; 

    $arr[] = "[$cc,$bb]"; 
} 
?> 

var qqq = [<?php echo implode(',',$arr)?>]; 

我認爲這提高了可讀性,以及和更容易移植到更多的東西管理

+0

不輸出任何東西:( – NeonCurls 2014-12-04 15:17:12

0

計算行數並檢查條件是否適用最後一個循環通過使用計數器發生:

$i = 0; 
while($aa = mysql_fetch_array($wa)) 
{  
    $cc = $aa['Coordinate_id']; 
    $bb = $aa['city_name']; 

    if ($i < $num) 
    { 
     echo "[$cc,$bb],"; 
    } 
    else 
    { 
     echo "[$cc,$bb]"; 
    } 
    $i++; 
} 

最後,請注意,mysql_ *函數已棄用,應予以避免。改用PDO或mysqli。

+0

下來選民關懷解釋? – Jonast92 2014-12-04 15:03:44

+0

我不是投票人下來,但它不適用於我:( – NeonCurls 2014-12-04 15:23:19

+0

@vamkodz你能證明發生了什麼? – Jonast92 2014-12-04 15:32:29

0

使用數組,而不是回聲和內爆外,同時循環

var qqq = [<?php 
    $aw = "select * from city;"; 
    $wa = mysql_query($get_marker); 

$ret = array(); 

while($aa = mysql_fetch_array($wa)) 
{  
    $cc = $aa['Coordinate_id']; 
    $bb = $aa['city_name']; 

    $ret[] = "[$cc,$bb]"; 

} 

echo implode(',', $ret); 
?> ]; 
+0

不起作用:( – NeonCurls 2014-12-04 15:24:31