所有行都未插入服务器数据库

时间:2016-01-14 09:25:03

标签: php html mysql database

我正在从xml文件上传数据。 所有行都在我的本地服务器上正常上传。但是只有一些行插入服务器的数据库中。

这是我的上传代码

/*--upload data to database--*/
if(isset($_POST)&&!empty($_POST)){
    @$token=$_SESSION['token'];
    // echo 'session'.$token.'<br>';
    //echo 'form'.$_POST['token'];
    unset($_SESSION['token']);
    if($token&&$_POST['token']==$token){
        $lotterydetails=array(
           $_POST['serialnumber'],
           $_POST['lotteryname'],
           $_POST['date'],
           $_POST['drawnumber'],
           $_POST['drawvenew'],
           $_POST['approvedby'],
           $_POST['approverdesig'],
           $_POST['approveroffice']
        );
        try  
        {
            $connect=lottery_db_connect();
            $connect->beginTransaction();
            /*--check for duplicate entry if found rollbak the transaction--*/
            $duplicate=$connect->prepare("SELECT * FROM `daily_draw_details` WHERE `draw_date`=?");
            $duplicate->execute(array($_POST['date']));
            if($duplicate->rowCount()){
                $connect->rollBack();
                $error="Duplicate entry found!! File is already uploaded";
            }else{
                /*--insert basic data--*/
                $first=$connect->prepare("INSERT INTO `daily_draw_details`(`draw_serial_number`, `draw_lottery_name`, `draw_date`, `draw_number`, `draw_venuew`, `draw_approved_by`, `draw_approver_designation`, `draw_approved_office`) VALUES (?,?,?,?,?,?,?,?)");
                $first->execute($lotterydetails);
                $id=$connect->lastInsertId();

                /*--insert prize details--*/
                $second=$connect->prepare("INSERT INTO `draw_prize_list`(`draw_id`, `prize_no`, `prize_amount`, `prize_consolation`) VALUES (?,?,?,?)");
                $amount=$_POST['prizeamount'];
                $conslation=$_POST['conslation'];

                /*--insert series and digit details--*/
                $third=$connect->prepare("INSERT INTO `draw_series_details`(`prize_id`, `prize_series_name`, `prize_lottery_number`, `prize_lottery_district`) VALUES (?,?,?,?)");
                foreach($_POST['prizeno'] as $key=>$prize){
                    $second->execute(array($id,$prize,$amount[$key],$conslation[$key]));
                    $prizeid=$connect->lastInsertId();
                    foreach($_POST[$prize.'seriesname'] as $key=>$series){
                        $check=$connect->prepare("
                            SELECT * 
                            FROM `draw_series_details` 
                            WHERE `prize_series_name`=? 
                            AND `prize_lottery_number`=?");
                        $check->execute(array($series,$_POST[$prize.'digits'][$key]));
                        if($check->rowCount()){
                        }else{
                            $third->execute(array($prizeid,$series,$_POST[$prize.'digits'][$key],$_POST[$prize.'district'][$key]));
                        }
                    }
                }
                $connect->commit();
                check_for_saved_lottery($_POST['date']);
                pushNotificationToUsers($_POST['lotteryname'],$_POST['drawnumber']);
                $success="Lottery results uploaded successfully";
            }
        }catch(Exception $e){
            // $connect->rollBack();
            //$e->getMessage();
            $error="An error occured try again";
        }
    }else{
        $error="Token mismatch error is happen";
    }   
}
/*--end of upload--*/

例如。如果我从XML上传60行,它只插入38行。但是在localhost中,所有行都已成功上传。

更新 - 数据库结构

draw_series_details

_________________________________________
|Column                 |Type           |
-----------------------------------------
|id                     |int(11)        |    
|prize_id               |varchar(50)    |    
|prize_series_name      |varchar(20)    |        
|prize_lottery_number   |varchar(100)   |        
|prize_lottery_district |varchar(200)   |
-----------------------------------------

draw_prize_list

_________________________________
|Column           |Type         |
---------------------------------
|id               |int(11)      |
|draw_id          |varchar(10)  |
|prize_no         |varchar(20)  | 
|prize_amount     |varchar(200) |
|prize_consolation|varchar(10)  | 
---------------------------------

daily_draw_details

___________________________________________
|Column                    |Type          |
------------------------------------------- 
|id                        |int(11)       |      
|draw_serial_number        |varchar(50)   |      
|draw_lottery_name         |varchar(200)  |          
|draw_date                 |varchar(50)   |          
|draw_number               |varchar(50)   |      
|draw_venuew               |varchar(500)  |      
|draw_approved_by          |varchar(200)  |          
|draw_approver_designation |varchar(200)  |          
|draw_approved_office      |varchar(500)  |
-------------------------------------------

UPDATE-上传xml文件并在html表格中显示,最后上传到数据库

 //get data from xml
 $xml=simplexml_load_file($_FILES['result']['tmp_name']);
 <!--table generation starts here-->
            <?php if(isset($xml)&&!empty($xml))
            {?>
            <div class="form-group">
            <form action="profile.php" method="post">
              <input type="hidden" name="token" value="<?php echo $token; ?>">
              <input type="hidden" name="serialnumber" value="<?php echo $xml->drawserialnumber; ?>">
              <input type="hidden" name="lotteryname" value="<?php echo $xml->lotteryname; ?>">
              <input type="hidden" name="date" value="<?php echo $xml->drawdate; ?>">
              <input type="hidden" name="drawnumber" value="<?php echo $xml->shortname.'-'.$xml->drawnumber; ?>">
              <input type="hidden" name="drawvenew" value="<?php echo $xml->drawvenew; ?>">
              <input type="hidden" name="approvedby" value="<?php echo $xml->approvedby; ?>">
              <input type="hidden" name="approverdesig" value="<?php echo $xml->approverdesig; ?>">
              <input type="hidden" name="approveroffice" value="<?php echo $xml->approveroffice; ?>">
                <?php
                 echo '<table cellspacing="0" cellpadding="0" border="1" class="table">
                  <tr>
                    <th>Prize No</th>
                    <th>Amount</th>
                    <th>Consolation</th>
                    <th>Series Name</th>
                    <th>Lottery Number</th>
                    <th>District</th>
                  </tr>';
                 foreach($xml->prizes as $prize){
                    foreach($prize->prizedetails as $details){
                 ?>
                <tr>
                  <td rowspan="<?php echo sizeof($details->prizeticket); ?>"><?php echo $details->prizeno; ?><input type="hidden" name="prizeno[]" value="<?php echo $details->prizeno; ?>"></td>
                <td rowspan="<?php echo sizeof($details->prizeticket); ?>" ><?php echo $details->prizedesc; ?><input type="hidden" name="prizeamount[]" value="<?php echo $details->prizedesc; ?>"></td>
                <td rowspan="<?php echo sizeof($details->prizeticket); ?>" ><?php echo $details->conslation; ?><input type="hidden" name="conslation[]" value="<?php echo $details->conslation; ?>"></td>
                <?php
                  $i=1;foreach ($details->prizeticket as $tickets){
                 ?>
                <td><?php echo $tickets->seriesname; ?>
                  <input type="hidden" name="<?php echo $details->prizeno;  ?>seriesname[]" value="<?php echo $tickets->seriesname; ?>">
                            </td>
                            <td><?php echo $tickets->digit; ?>
                          <input type="hidden" name="<?php echo $details->prizeno;  ?>digits[]" value="<?php echo $tickets->digit; ?>">
                        </td>
                             <td><?php  echo $tickets->district; ?>
                          <input type="hidden" name="<?php echo $details->prizeno;  ?>district[]" value="<?php echo $tickets->district; ?>">
                         </td>
                        </tr>
                     <?php  $i++;
                  }
                 }
                }
                ?>
                <input type="submit" value="Verfiy and upload to application" class="btn btn-primary" />
                <br><br>
                </form><?php }?>

这里是代码上面的工作流程。

1.User上传xml文件

2.Parse并将数据从xml显示到html表。

3.最后,当用户按下按钮verify and upload to Application时,数据将被插入数据库。

注意 form标记与html表一起填充。

Sample-xml-file

Php-file

使用xml运行上面的php文件以查看输出。

0 个答案:

没有答案