Javascript 如何在php中的while循环中生成if-else条件?

Javascript 如何在php中的while循环中生成if-else条件?,javascript,php,mysql,loops,if-statement,Javascript,Php,Mysql,Loops,If Statement,我想制作一个如下所示的数组: qqq = [[a,b],[c,d]]; qqq= [[a,b],[c,d],]; 但根据我得到的代码,它的输出如下所示: qqq = [[a,b],[c,d]]; qqq= [[a,b],[c,d],]; 如何排除多余的分号? var qqq = [<?php $aw = "select * from city;"; $wa = mysql_query($aw); while($aa = mysql_fet

我想制作一个如下所示的数组:

qqq = [[a,b],[c,d]];
qqq= [[a,b],[c,d],];
但根据我得到的代码,它的输出如下所示:

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],";

        }   
?> ];
var qqq=[];
替换此:

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,',');

由于您使用的是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);
?>;
var qqq=;

您应该像这样使用内爆,而不是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)?>];

var qqq=[];

我认为这也提高了可读性,并且更容易移植到更易于管理的地方

计算行数:

$num = mysql_num_rows($aw);
并使用计数器检查是否适用最后一个循环发生的条件:

$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++;
}   
$i=0;
而($aa=mysql\u fetch\u数组($wa))
{       
$cc=$aa['Coordinate_id'];
$bb=$aa[‘城市名称’];
如果($i<$num)
{
回声“[$cc,$bb]”;
}
其他的
{
回声“[$cc,$bb]”;
}
$i++;
}   

最后,请注意mysql_*函数是不推荐使用的,应该避免使用。请改用PDO或mysqli。

使用数组代替echo,并在while循环外部内爆

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);
?> ];
var qqq=[];

必须使用PDO或mysqli函数,因为mysql函数是使用PDO或mysqli的
\u fetchAll()
函数去擦洗的,所以您甚至可以对循环进行操作。@GeraldSchneider Yep。。。因此,关于使用PDO或mysqli=)的问题的评论只输出了最后的数据:(@vamkodz Small coding error…用正确的答案更新了答案=)没有输出任何内容:(@vamkodz你能演示一下发生了什么吗?什么意思是它不起作用?你能在这次更改后发布一个错误吗?