2017-10-13 3 views
1

J'ai deux boîtes de sélection avec plusieurs valeurs dans chaque option qui contient le nom et la quantité de l'utilisateur. Avant de pouvoir fusionner un utilisateur pour le paiement, je dois m'assurer qu'il fusionne les utilisateurs avec le même montant. Mais quand j'explose les valeurs dans chaque option et compare le montant de paquet, il me donne toujours l'erreur même quand le montant de paquet est le même.plusieurs valeurs dans l'option select donnent une condition incorrecte lors de la comparaison des valeurs d'éclat

Pour faire mon explication claire, voici une capture d'écran et les codes source:

enter image description here

Le code source html:

<div class="row"> 
     <!-- BEGIN ALERT - REVENUE --> 
     <form method="post" action=""> 
     <div class="col-lg-5 col-md-5 col-sm-5" style="margin-bottom:15px;"> 
      <p style="font-weight:bolder; font-size:16px;">New Members</p> 

      <p> 
      <select name="new_user" class="form-control"> 
      <option value="">New Members</option> 
      <?php 
     $new = mysqli_query($mysqli, "SELECT * FROM package"); 
     while($n = mysqli_fetch_array($new)){ 
      ?> 
     <option value="<?php echo $n['username'] . "-" . $n['package_amount'];?>"><?php echo $n['username'];?> - <?php echo $n['package_amount'];?></option> 

     <?php 
     } 
     ?> 
      </select> 
      </p> 

     </div> 
     <!--end .col --> 
     <!-- END ALERT - REVENUE --> 

     <!-- BEGIN ALERT - VISITS --> 
     <div class="col-lg-5 col-md-5 col-sm-5" style="margin-bottom:15px;"> 
      <p class="user-header" style="font-weight:bolder; font-size:16px;">Members Awaiting Payment</p> 

      <p> 
      <select name="awaiting_payment" class="form-control"> 
      <option value="">Awaiting Payment</option> 
      <?php 
     $news = mysqli_query($mysqli, "SELECT * FROM payment_queue"); 

     if(mysqli_num_rows($news) < 1){ 
      echo '<option value="">No Users Awaiting Payment at the Moment</option>'; 
     }else{ 
     while($n2 = mysqli_fetch_array($news)){ 
      ?> 
     <option value="<?php echo $n2['username'] . "-" . $n2['package_amount'];?>"><?php echo $n2['username'];?> - <?php echo $n2['package_amount'];?></option> 

     <?php 
     } 
     } 
     ?> 
      </select> 
      </p> 

     </div> 
     <!-- /.row --> 
     <div class="col-lg-10"> 
     <div align="center"><button type="submit" name="submit" value="merge" class="btn btn-info btn-sm"><span class="fa fa-flag"></span> Merge</button></div> 
     </div> 
     </form> 

</div> 

Et voici le code source de traitement:

// Manual Merging 
    if (isset($_POST['submit']) && $_POST['submit'] == 'merge') { 
     //payee 
     $value = $_POST['new_user'];  
     $payees = explode('-',$value); 
     $name = $payees[0]; 
     $package = $payees[1]; 

     //collector 
     $col = $_POST['awaiting_payment']; 
     $ap = explode('-',$col); 
     $aname = $ap[0]; 
     $apn = $ap[1]; 

     if($_POST['new_user'] == "") { 
      $newErr = "Select from new users a sponsor"; 
      $msgBox = alertBox($newErr, "<i class='fa fa-times-circle'></i>", "danger"); 
     } else if($_POST['awaiting_payment'] == "") { 
      $await = "Select member to be sponsor from awaiting payment list"; 
      $msgBox = alertBox($await, "<i class='fa fa-times-circle'></i>", "danger"); 
     }//else if(!empty($_POST['new_user']) && !empty($_POST['awaiting_payment'])){ 
     else if(mysqli_num_rows(mysqli_query($mysqli, "SELECT * FROM to_be_paid WHERE username='".$_POST['awaiting_payment']."'"))>0){ 
     $user_error= $_POST['awaiting_payment']. " has already been assigned a member for payment"; 
     $msgBox = alertBox($user_error, "<i class='fa fa-times-circle'></i>", "danger"); 
     } 
     else if(mysqli_num_rows(mysqli_query($mysqli, "SELECT * FROM to_be_paid WHERE payee_username='".$_POST['new_user']."'"))>0){ 
     $user_e= $_POST['new_user']. " has already been assigned to pay."; 
     $msgBox = alertBox($user_e, "<i class='fa fa-times-circle'></i>", "danger"); 
     }  

     else if($package_name != $apn){ 
     $p_error= " The package of ". $package ." you are merging with " . $apn . " are not the same package. You need to merge package of the same denomination."; 
     $msgBox = alertBox($p_error, "<i class='fa fa-times-circle'></i>", "danger"); 
     } 



     //} 
     else { 
       //payee 
       $value = $_POST['new_user'];  
       $payees = explode('-',$value); 
       $name = $payees[0]; 
       $package = $payees[1]; 

       //collector 
       $col = $_POST['awaiting_payment']; 
       $ap = explode('-',$col); 
       $aname = $ap[0]; 
       $apn = $ap[1]; 
       //select from package table 
       //This is the payee 
       $paye = mysqli_query($mysqli, "SELECT * FROM package WHERE username='$name' and package_amount= '$package'"); 
       $payee = mysqli_fetch_array($paye); 

       //select from payment_queue table. This are people awaiting payment. 

       $awaiting = mysqli_query($mysqli, "SELECT * FROM payment_queue WHERE username='$aname' and package_amount='apn'"); 
       $await = mysqli_fetch_array($awaiting); 

       //variable 
           $unames = $await['username']; 
           $ban = $await['bank_account_number']; 
           $pa = $await['package_amount']; 
           $puname = $payee['username']; 
           $ppn = $payee['phone_number']; 
           $pban = $payee['bank_account_name']; 
           $pbano = $payee['bank_account_number']; 
           $pbn = $payee['bank_name']; 
           $ppa = $payee['package_amount']; 
           //$date = date('Y-m-d H:i:s'); 
           $now = date("Y-m-d H:i:s"); 
           $tim = '+'.$set['donation_time']; 
           $date = date("Y-m-d H:i:s", strtotime($tim.' hours', strtotime($now))); 

      //insert details into to_be_paid table 

      $stmts = mysqli_query($mysqli, " 
           INSERT INTO 
            to_be_paid( 
             username, 
             bank_account_number, 
             package_amount, 
             payee_username, 
             payee_number, 
             payee_bank_account_name, 
             payee_bank_account_number, 
             payee_bank_name, 
             payee_package_number, 
             datetime 
             ) VALUES (
             '$unames', 
             '$ban', 
             '$pa', 
             '$puname', 
             '$ppn', 
             '$pban', 
             '$pbano', 
             '$pbn', 
             '$ppa', 
             '$date' 

            ) 
      "); 

       if($stmts){  
      //mysqli_query($mysqli, "DELETE FROM package WHERE username='".$_POST['new_user']."'"); 

      $mergeOk = "Successfully Assigned " . $puname ." to ". $unames . " for Payment"; 
      $msgBox = alertBox($mergeOk, "<i class='fa fa-check-square'></i>", "success"); 
      //add to assign table 
    mysqli_query($mysqli, 
    "INSERT INTO 
    assign(
    username, 
    bank_account_number, 
    package_amount, 
    payee_username, 
    payee_bank_account_number 

    ) 
    VALUES(
    '$unames', 
    '$ban', 
    '$pa', 
    '$puname', 
    '$pbano' 
    )"); 

        //delete person to be paid from payment_queue table 
        mysqli_query($mysqli,"DELETE FROM payment_queue WHERE username='$aname' AND package_amount='$apn'"); 
        //delete person to be paid from assign table 
        mysqli_query($mysqli,"DELETE FROM assign WHERE username='$aname' AND package_amount='$apn'"); 

       }else{ 
        $mergeErr = "There was an error assigning " . $puname ." to ". $unames . " for Payment. Please try again later."; 
      $msgBox = alertBox($mergeErr, "<i class='fa fa-check-square'></i>", "danger"); 
       } 

     } 
    } 

J'ai stackoverflow recherché et des ressources en ligne que je pourrais trouver mais non était capable de me diriger vers le bon chemin.

Répondre

0

À partir de votre code:

else if($package_name != $apn){ 
    $p_error= " The package of ". $package ." you are merging with " . $apn . " are not the same package. You need to merge package of the same denomination."; 
    $msgBox = alertBox($p_error, "<i class='fa fa-times-circle'></i>", "danger"); 
    } 

package_name $ est définie nulle part dans votre code. Pourrait-il être $ package à la place?

+0

merci de le signaler. Ma variable en était la cause. –

+0

Merci, veuillez accepter la réponse (coche à côté) pour clôturer votre question. – Nic3500