0

API を使用して mysql テーブルのすべてのメンバーに SMS を送信しようとしています。

SMSを送信できます。

しかし、テーブルの最初の行のみが使用されていますが、SMS がテーブル内のすべてのレコードに送信されるようにしたいと考えています。

私が使用しているコードは次のようなものです:

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$result = mysql_query("SELECT name,mobile FROM members");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
$mobile=$row[1];
$name=$row[0];

$request = "";
$param['mobileno'] = "91". $mobile;
$param['message']  = "Dear $name (organisation name) wishes you a very very Happy Birthday";
$param['username'] = "username";
$param['password']  = "password";
$param['sendername'] = "sender";
foreach ($param as $key => $val ){$request .= $key . "=" . urlencode($val);    
$request .= "&";}$request = substr( $request, 0, strlen( $request ) - 1 );
$url = "http://smsapi" . $request;
$ch = curl_init($url);curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec($ch);
var_dump($result);exit;
curl_close( $ch );

回答の提案に従ってコードを変更しましたが、まだ最初の行のみの結果が得られています。

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$result = mysql_query("SELECT name,mobile FROM members");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
while($row = mysql_fetch_row($result)) {
$mobile=$row[1];
$name=$row[0];

$request = "";
$param['mobileno'] = "91". $mobile;
$param['message']  = "Dear $name (organisation name) wishes you a very very Happy Birthday";
$param['username'] = "username";
$param['password']  = "password";
$param['sendername'] = "sender";
foreach ($param as $key => $val ){$request .= $key . "=" . urlencode($val);    
$request .= "&";}$request = substr( $request, 0, strlen( $request ) - 1 );
$url = "http://smsapi" . $request;
$ch = curl_init($url);curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec($ch);
var_dump($result);exit;
curl_close( $ch );
}
4

3 に答える 3

0

すべての行をループする必要があります。

何かのようなもの:

while($row = mysql_fetch_row($result)) { .... }

また、php mysql 拡張機能は非推奨です。mysqli または pdo を参照してください。

于 2013-08-20T13:56:34.137 に答える
0

あなたはmysql_fetch_rowを使用していますが、これは私の理解では1行しか返しません(見つかった場合)。代わりに mysql_fetch_all の使用を検討してください

于 2013-08-20T13:57:09.110 に答える