2016-08-09 42 views
1

用户在文本框和要发送的消息上输入两个日期时间段。我分别得到$ time1和$ time2和$ message的值。我在select语句中使用$ time1和$ time2,它应该在两次之间读取数据库中的移动号码。这些是接收消息的号码。如何以逗号分隔的数组传递变量?

问题,如何将这些数字保存到一个变量中,假设他们是十个数字,我应该将这些数字传递给Web服务以接收消息。这些数字还需要用逗号分隔以区分它们。为了分离,我认为implode函数可以在数组中工作。 我是PHP新手,所以有人帮助我实现这一点。谢谢。

$message =mysqli_real_escape_string($conn, $_POST['message']); 
$time1 = mysqli_real_escape_string($conn, $t1); 
$time2 = mysqli_real_escape_string($conn, $t2); 

$sql = "SELECT DISTINCT msisdn FROM customer WHERE DATE_FORMAT(time_paid, '%Y-%c-%e') BETWEEN ADDDATE('$time1',INTERVAL 0 HOUR) AND ADDDATE('$time2',INTERVAL '23:59' HOUR_MINUTE)"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) 
{ 
    //Output data of each row 
    while($row = $result->fetch_assoc()) 
    { 
    $mobilenumber = $row['msisdn']; 
    } 
} 
else 
{ 
    echo "No data in the server! "; 
} 
$conn->close(); 

sendbulk($mobilenumber, $message); 

function sendbulk($mobilenumber, $message) 
{ 

    $serviceArguments = array(
     "mobilenumber" => $mobilenumber, 
     "message" => $message 
    ); 

    $client = new SoapClient("http://*****:8080/WebSms/smswebservice?wsdl"); 

    $result = $client->process($serviceArguments); 

    return $result; 
} 
+0

开始由于不覆盖你从数据库中'$移动电话号码= $行获得的数字['msisdn'];'应该是'$ mobilenumber [] = $ row ['msisdn'];'现在你将有一个数组,不只是一个数字 – RiggsFolly

+0

或者如果你只得到一个结果,删除while循环 – RiggsFolly

回答

0

@RiggsFolly说,目前您正在覆盖来自数据库的数字。添加它们就像他说的话,如果你想在短短的一个变量,逗号分隔的,你可以使用implode

$mob_numbers = implode(", " , $mobilenumbers); 
+0

你,完美无瑕地工作。 –

+0

@ user6664057很高兴提供帮助 –