public function rules()
{
return [
['cities', 'validateArrayRequired', 'skipOnEmpty' => false],
];
}
public function validateArrayRequiredInteger($attribute, $params, $validator) {
if(is_array($this->$attribute)) {
if(empty($this->$attribute)) {
$this->addError($attribute, "Выберите {$attribute}");
}
foreach($this->$attribute as $item) {
if(!ctype_digit($item)) {
$this->addError($attribute, 'Данные {$attribute} содержат не числа');
break;
}
}
} else {
$this->addError($attribute, "Выберите {$attribute}");
}
}
//заводим еще одну таблицу в нее будем инсертить файл без разбору
/*
* CREATE TABLE import_excel(
* `name` CHAR(30),
* `nameScore` CHAR(30),
* `organization` CHAR(30),
* )
*/
//запишем все данные в новую таблицу
if (isset($_POST['import_b'])) {
include "Classes/PHPExcel/IOFactory.php";
$file_path = $_FILES['file_path']['tmp_name'];
$objPHPExcel = PHPExcel_IOFactory::load($file_path);
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$highestRow = $worksheet->getHighestRow();
$dataExcell = [];//тут будем хранить данные
for ($row = 2; $row <= $highestRow; ++$row) {
//при добавлении в массив можешь дополнительно провалидировать trim, strip_tags и прочее если надо
$dataExcell[] = sprintf(
"('%s', '%s', '%s')",
$worksheet->getCellByColumnAndRow(0, $row),
$worksheet->getCellByColumnAndRow(1, $row),
$worksheet->getCellByColumnAndRow(2, $row)
);
}
}
$sql = mysql_query('INSERT INTO test_excel (name, nameScore, organization) VALUES '.implode(', ', $dataExcell));
unset($dataExcell);
}
//теперь данные мержим в нужную таблицу
$result = mysqli_query($connect, 'INSERT INTO test_excel (name, nameScore, organization) '
. 'SELECT t1.name, t1.nameScore, t1.organization '
. 'FROM import_excel t1, test_excel t2 '
. 'WHERE t1.name <> t2.name '
. 'and t1.nameScore <> t2.nameScore '
. 'and t1.organization <> t2.organization')
or die('Ошибка чтения записи:'.mysqli_error());