2016-08-09 54 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很高興提供幫助 –