题
我正在使用他们的'Masspay NVP示例“而且我很难修改代码,因此从我的MySQL数据库中输入数据。
基本上,我在MySQL中有用户表,其中包含电子邮件地址,付款状态(付款,无薪)和余额。
CREATE TABLE `users` (
`user_id` int(10) unsigned NOT NULL auto_increment,
`email` varchar(100) collate latin1_general_ci NOT NULL,
`status` enum('unpaid','paid') collate latin1_general_ci NOT NULL default 'unpaid',
`balance` int(10) NOT NULL default '0',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
数据 :
1 test1@example.net paid 100
2 test2@example.net unpaid 11
3 test3@example.net unpaid 20
4 test4@example.net unpaid 1
5 test5@example.net unpaid 20
6 test6@example.net unpaid 15
然后,我创建了一个查询,该查询选择了10美元及以上的无薪余额的用户:
$conn = db_connect();
$query=$conn->query("SELECT * from users WHERE
balance >='10'
AND status = ('unpaid')");
我想适用于从查询返回的每个记录以填充以下代码:
现在,我认为我需要修改的代码如下:
for($i = 0; $i < 3; $i++) {
$receiverData = array( 'receiverEmail' => "user$i@paypal.com",
'amount' => "example_amount",);
$receiversArray[$i] = $receiverData;
}
但是我只是无法使它工作,我尝试使用mysqli_fetch_array,然后用$ row [email']和“ example_amount”用各种方法替换为“ userqunqure@paypal.com”和$ row ['email'email']和“ example_amount”]编码但行不通。另外,我还需要它循环到上面的for循环中从查询中检索到的许多行。
因此,我要寻找的最终结果是$ nvpstr字符串以这样的方式传递:
$nvpStr = "&EMAILSUBJECT=test&RECEIVERTYPE=EmailAddress&CURRENCYCODE=USD&L_EMAIL0=$test2@example.net&L_Amt=11&L_EMAIL1=$test3@example.net&L_Amt=11&L_EMAIL2=$test3@example.net&L_Amt=20&L_EMAIL3=$test5@example.net&L_Amt=20&L_EMAIL0=$test6@example.net&L_Amt=15";
谢谢
解决方案
经过一些反复试验,我解决了这个问题:
<?php
$nvpStr="&EMAILSUBJECT=$emailSubject&RECEIVERTYPE=$receiverType&CURRENCYCODE=$currency";
$conn = db_connect();
$query=$conn->query("SELECT email,balance from users WHERE
balance >='10'
AND status = ('unpaid')");
$i = 0;
while ($i <= mysqli_fetch_row) {
while($row = mysqli_fetch_object($query)) {
$nvpStr.="&L_EMAIL$i=$row->email&L_Amt$i=$row->balance";
$i++;
}
}
?>
不隶属于 StackOverflow