1

ユーザーがスプレッドシートをアップロードしてmysqlに挿入できるように、phpexcelを使用しようとしています。ユーザーがスプレッドシートに空白の行を持っている場合を除き、データベースに不要な行をいくつか入れます。私は読みましたが、mysqlはチェック制約をサポートしていません。そのほとんどは、私がやろうとしているアプリケーションレベルで行う必要があります。PHP では、特定の列が空であるかどうかを確認し、その行をスキップする方法を教えてください。何か助けをいただければ幸いです。より良い解決策があれば、私はすべてのオプションを用意しています。私はしばらくの間、bldgその行をスキップするだけでなく、列が空であることを取得しようとしていましたが、運がありませんでした..

<?php require '../Classes/PHPExcel.php';
require_once '../Classes/PHPExcel/IOFactory.php';

$path = "../upload/uploads/$Filename";


$objPHPExcel = PHPExcel_IOFactory::load($path);
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$worksheetTitle = $worksheet->getTitle();
$highestRow =  $worksheet->getHighestRow();
$highestColumn = 'L'; // e.g 'F'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$nrColumns = ord($highestColumn) - 64;
$objReader = PHPExcel_IOFactory::createReaderForFile($path);
$objReader->setReadDataOnly(true);

echo '<br>Data: <table width="100%" cellpadding="3" cellspacing="0"><tr>';
for ($row = 16; $row <= $highestRow; ++ $row) {

echo '<tr>';
for ($col = 0; $col < $highestColumnIndex; ++ $col) {
$cell = $worksheet->getCellByColumnAndRow($col, $row);
$val = $cell->getValue();
if($row === 1)
echo '<td style="background:#000; color:#fff;">' . $val . '</td>';
else
echo '<td>' . $val . '</td>';
}
echo '</tr>';
}
echo '</table>';

for ($row = 16; $row <= $highestRow; ++ $row) {

$val=array();
    for ($col = 0; $col < $highestColumnIndex; ++ $col) {
    $cell = $worksheet->getCellByColumnAndRow($col, $row);
    $val[] = $cell->getValue();

    }


  $sql="insert into excess1(date_excessed, bldg, floor, jack, equipment_owner,     contact_name, contact_phone, qty, type_of_excess, asset_tag, service_tag, comments)
values('".$val[0] . "','" . $val[1] . "','" . $val[2]. "','" . $val[3]. "','" . $val[4].     "','" . $val[5]. "','".$val[6] . "','".$val[7] . "','".$val[8] . "','".$val[9] .     "','".$val[10] . "','".$val[11] . "')";

$result = mysql_query($sql) or die(mysql_error());

   print "$result";
  }
   }
    unlink("../upload/uploads/$Filename");
?>
</article>
4

0 に答える 0