Обработка нулевых значений при загрузке .xls в mysql - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть веб-сайт для отображения результатов фитнес-теста, который работает на Drupal, а значения хранятся в базе данных mysql. Оригинальные данные поступают с компьютеров, подключенных к человеку, проходящему фитнес-тест, и затем помещаются в файл Excel .xls.

У меня есть скрипт, который позволяет мне загружать эти файлы .xls в базу данных, чтобы при добавлении 50-100 тестов мне не приходилось делать каждый по отдельности. Отлично работает, за исключением нулевых значений. Когда есть пустой тест, он автоматически устанавливает его на 0, но я хочу, чтобы он установил на ноль.

Существует большая разница между нулем и 0 для меня, потому что 0 означает, что они ничего не набрали (например, не смогли поднять необходимый вес на жиме лежа) по сравнению с нулем, что означает, что они не завершили тест из-за таких факторов, как травма или недоступное оборудование.

Можно ли провести различие между ними, чтобы пустая ячейка в .xls отображалась как ноль, а не 0 в базе данных? Это проблема с кодом или проблема с базой данных, где я должен попытаться сохранить ее как нечто отличное от целого или десятичного?

<?php
require_once 'Excel/reader.php';
include('db.php');
global $user;
$useriddd=$user->uid;
$message='';
$userArr=array();
$emailArr=array();
if(isset($_GET['meg']))
  {
     $message=base64_decode($_GET['meg']);
  }
if(isset($_POST['SubmitFile']))
  {
       $temp_path="Excel/";


         if($_FILES['fileexcel']['tmp_name']!="")
          {
            if($_FILES['fileexcel']['name']=='fitness.xls')
              {
               $var1=$_FILES['fileexcel']['name'];
               move_uploaded_file($_FILES['fileexcel']['tmp_name'],$temp_path.$var1);
               $path=$temp_path.$var1;
              }
              else
              {
                $var=base64_encode('You are allowed to upload excel file with name fitness.xls only');
                 ?>
                 <script language="javascript">window.location='<?php echo base_path()?>upload-fitness-results?meg=<?php echo $var;?>'</script>
                 <?php
                 exit;
              }
          }   


  }
if(isset($_GET['p'])=='do')
{

$data = new Spreadsheet_Excel_Reader();

$data->read('Excel/fitness.xls');


error_reporting(E_ALL ^ E_NOTICE);

for ($j =1; $j <= count($data->sheets[0]['cells']); $j++)
     {


       $playeridQry=mysql_query("select uid from users where name='".addslashes($data->sheets[0]['cells'][$j][3])."'")or die(mysql_error());
       $playeridRow=mysql_fetch_array($playeridQry);
       //////////////////////////////////////////////////////////////////////////
       $campidQry=mysql_query("select nid from node where type='training_camp' and title='".addslashes($data->sheets[0]['cells'][$j][2])."'")or die(mysql_error());
       $campidRow=mysql_fetch_array($campidQry);


         /***********************************player content type code***********************************/
$maxqry=mysql_query("select MAX(nid), MAX(vid) from node") or die(mysql_error());
   $maxrow=mysql_fetch_array($maxqry);
   $newnid=$maxrow['MAX(nid)']+1;
   $newvid=$maxrow['MAX(vid)']+1;
 ///////////////////////////for node entry///////////////////////
    $nodeinsertqry="insert into node
                                set
                                vid='".$newvid."',
                                nid='".$newnid."',
                                type='test',
                                title='".addslashes($data->sheets[0]['cells'][$j][1])."',
                                uid='".$useriddd."',
                                created='".time()."',
                                changed='".time()."',
                                status='1'";
    mysql_query($nodeinsertqry) or die(mysql_error());  
    $nodnewid=mysql_insert_id();
    //////////////////////////////for url_alias//////////////////
        $srcc='node/'.$newnid;
        $pathC=str_replace(' ','-',$data->sheets[0]['cells'][$j][1]);
        $dsts='content/'.$pathC;
        $insertAlias=mysql_query("insert into url_alias
                                                    set
                                                    src='".$srcc."',
                                                    dst='".$dsts."'");


              ////////////////revision table//////////////
       $revisioninsertqry="insert into node_revisions
                                set
                                vid='".$newvid."',
                                nid='".$newnid."',

                                title='".addslashes($data->sheets[0]['cells'][$j][1])."',
                                uid='".$useriddd."',

                                format='3',
                                timestamp='".time()."'";

    mysql_query($revisioninsertqry) or die(mysql_error());


         ////////////////////player content type/////////////////

         $playerQry=mysql_query("insert into content_type_test set
                                                                vid='".$newvid."',
                                                                nid='".$newnid."',
                                                                field_player_uid='".$playeridRow['uid']."',
                                                                field_status_value='".addslashes($data->sheets[0]['cells'][$j][4])."',
                                                                field_training_camp_nid='".$campidRow['nid']."',
                                                                field_speed_value='".addslashes($data->sheets[0]['cells'][$j][6])."',
                                                                field_agility_value='".addslashes($data->sheets[0]['cells'][$j][7])."',
                                                                field_trx_value='".addslashes($data->sheets[0]['cells'][$j][5])."',
                                                                field_squats_value='".addslashes($data->sheets[0]['cells'][$j][8])."',
                                                                field_balance_value='".addslashes($data->sheets[0]['cells'][$j][11])."',
                                                                field_bench_value='".addslashes($data->sheets[0]['cells'][$j][10])."',
                                                                field_beep_value='".addslashes($data->sheets[0]['cells'][$j][14])."',
                                                                field_sprint__do_value='".addslashes($data->sheets[0]['cells'][$j][12])."',
                                                                field_hrdropvv_value='".addslashes($data->sheets[0]['cells'][$j][13])."',
                                                               field_chins_value='".addslashes($data->sheets[0]['cells'][$j][9])."',

field_elasticity_value='".addslashes($data->sheets[0]['cells'][$j][15])."'


")or die(mysql_error());    

/********************End of player content type*************************/     








    }

              unlink('Excel/fitness.xls');

                   $message=base64_encode('Data has been populated into data base and file has been deleted from the server');

                   ?>
                 <script language="javascript">window.location='<?php echo base_path()?>upload-fitness-results?meg=<?php echo $message;?>'</script>
                 <?php
                 exit;


}
if(file_exists('Excel/fitness.xls'))
{

  echo "fitness.xls is available....";
  ?>
  <a href="<?php echo base_path()?>upload-fitness-results?p=do">Please Populate the file into database</a>

  <?php

}
if(!file_exists('Excel/fitness.xls'))
{


 ?>
 <form action="" method="post" enctype="multipart/form-data" name="excel" id="excel" >
    <table  style="width:700px; border:#CCCCCC solid 1px;" cellpadding="1" cellspacing="1">
       <tr> 
            <td colspan="2" style="color:#FF0000;">
            <?php
            if(isset($message))
               {
                      echo $message;
               }
            ?>

            </td>
       </tr>
       <tr> 
            <td width="34%" class="subjects">Choose File(fitness.xls) </td>
            <td width="66%"><label>
              <input name="fileexcel" type="file"   id="fileexcel" />
            </label></td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
      </tr>
       <tr> 
            <td>&nbsp;</td><td><label>
              <input name="SubmitFile" type="submit" class="buttons" id="SubmitFile" value="Upload" />
            </label></td>
       </tr>
    </table>

</form>

 <?php

}   
?>
...