سؤال

أنا أختبر MassPay's PayPal باستخدامهم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 ثم استبدلت "userrdy@paypal.com" مع $ row ['email'] من الترميز لكنه لا يعمل. كما أنني بحاجة إلى حلقة إلى العديد من الصفوف التي تم استردادها من الاستعلام على أنها <3 في الحلقة أعلاه.

لذا فإن النتيجة النهائية التي أبحث عنها هي أن تمر سلسلة $ 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++;    
}
}

    ?>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top