2014-01-27 30 views
1

我的PHP代碼,while循環的輸出條款是凡在PHP與外界的同時

<?php 
include('session.php'); 
include('db.php'); 

$session=$_SESSION['agent']; 

$home1 = "SELECT fullname FROM users WHERE role='$session'"; 
$result1=mysql_query($home1) or die(mysql_error()); 
while ($row1=mysql_fetch_array($result1)) { 

echo $gallery = "'".$row1[0]."',"; // output is 'sam','teja','multiplevaluessoon', 


$home = "SELECT * FROM chat WHERE chat.from IN ('$gallery')"; 
} 
$result=mysql_query($home) or die(mysql_error()); 

while ($row=mysql_fetch_array($result)) { 

    $msg   =$row["message"]; 
    echo $randomUserId=$row["from"]; 
    echo $msg . "<br/>"; 
    } 
?> 

這裏$庫中包含「」末處的逗號,所以我得到的where子句中的錯誤,當我試圖削減$畫廊的輸出

'sam','teja','multiplevaluessoon', 

內循環最後字符內我得到

'sam''teja''multiplevaluessoon' 

被修剪所有逗號由於while循環,我需要最後一個逗號進行修整,這樣我可以在where子句

請建議我的任何想法

回答

1

利用rtrim()執行它。

$yourfinaltext = rtrim($yourcommadelimitedstring, ','); 

更改您的while這樣。

while ($row1=mysql_fetch_array($result1)) { 

     $gallery .= "'".$row1[0]."',"; 
     $home = "SELECT * FROM chat WHERE chat.from IN ('$gallery')"; 
} 
echo rtrim($gallery,','); 
+0

我是這麼解釋的存在,當我修剪它刪除所有逗號,因爲它是內部while循環 – ManojGeek

+1

你需要在'while'循環外執行此操作。這就是爲什麼我把變量名稱設置爲'$ yourfinaltext' –

+0

但在循環外部我不會得到與循環內部相同的輸出,在循環外,它只會打印列的最後一個值 – ManojGeek

0

刪除逗號,因爲這...

$gallery=substr_replace($gallery ,'',0,1);