2012-11-26 127 views
0

我注意到在stackoverflow中有很多像这样的主题,但我读的只有1个变量,而我有两个,我有点混淆。删除最后一个字符

所以这是我的代码,

$query = mysql_query("SELECT Provider.provider_id, provider.company_name FROM Provider"); 

while($row = mysql_fetch_array($query)){ 
    echo "'".$row['provider_id']."':'".$row['company_name']."',"; 

} 

我用这来生成Jeditable JavaScript代码。

我需要拿出最后一个逗号,这样我就可以在代码的其余部分包裹起来......

+1

保存完整将字符串合并为一个变量,并在处理后删除最后一个字符。 – vlcekmi3

+0

只需从回显中删除最后一个逗号即可。 –

+0

你想创建一个JSON字符串吗? –

回答

3

我喜欢使用数组:

$query = ...; 
$out = Array(); 
while($row = mysql_fetch_assoc($query)) { 
    $out[] = "'".$row['provider_id']."':'".$row['company_name']."'"; 
} 
echo implode(",",$out); 

它看起来像你想输出某种JSON的了,所以也许你可以使用:

$query = ...; 
$out = Array(); 
while($row = mysql_fetch_assoc($query)) { 
    $out[$row['provider_id']] = $row['company_name']; 
} 
echo json_encode($out); 
+0

这不是JSON。 JSON在字符串周围使用双引号,这是使用单引号。但可能要么为这个应用程序工作。此外,'json_encode'将会正确地转义嵌入的引号。 – Barmar

1
$query = mysql_query("SELECT Provider.provider_id, provider.company_name FROM Provider"); 
$result = ""; 
while($row = mysql_fetch_array($query)){ 
    $result .= "'".$row['provider_id']."':'".$row['company_name']."',"; 
} 
$result = rtrim($result, ','); 

OR

$query = mysql_query("SELECT Provider.provider_id, provider.company_name FROM Provider"); 
$result = array; 
while($row = mysql_fetch_array($query)){ 
    $result[] = "'".$row['provider_id']."':'".$row['company_name']."',"; 
} 
$result = implode(',' $result); 

OR

获取数记录(mysql_num_rows($query)),当你打最后一排只是做你想做的事

2

所以我通常只是堆栈这样的事情成阵列,然后内爆:

$parts = array(); 
while($row = mysql_fetch_array($query)){ 
    $parts[] = "'".$row['provider_id']."':'".$row['company_name']."'"; 

} 

echo implode(',', $parts); 

这就是说它看起来像youre输出一个JSON字符串的主体。如果是这样,你不应该手动建立它,你应该使用json_encode

$data = array(); 
while($row = mysql_fetch_array($query)){ 
    $data[$row['provider_id']] = $row['company_name']; 

} 

echo json_encode($data); 
相关问题