PHP中的IN子句& while循环输出while

时间:2014-01-27 08:02:53

标签: php mysql while-loop trim

我的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/>";
   }
 ?>

这里$ gallery包含&#39;,&#39;逗号在最后,所以我在where子句中得到一个错误,当我试图修剪$ gallery的输出

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

内部循环中的最后一个字符我正在

 'sam''teja''multiplevaluessoon'

由于while循环而修剪所有逗号,我需要修剪最后一个逗号,以便我可以在where子句中执行它

请建议我任何想法

3 个答案:

答案 0 :(得分: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,',');

答案 1 :(得分:1)

$rest = substr("abcdef", 0, -1);  // returns "abcde"

http://php.net/manual/en/function.substr.php

答案 2 :(得分:0)

删除逗号......

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