2012-11-26 174 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); 
相關問題