Я думаю, вам не нужно смотреть на весь код, но я все равно включу его.PHP: неопределенное смещение при импорте из csv
<?php if (!$_POST) { ?>
<!DOCTYPE html>
<html>
<div class="header">
<img src="images/logo.png" alt="logo" />
</div>
<body background="images/background.png" >
<form action="" method="post" enctype="multipart/form-data">
Choose your file: <br />
<input name="csv" type="file" id="csv" /> <br /> <br />
<input type="submit" name="Submit" value="Submit" />
</form>
</body>
</html>
<?php
} else {
$connect = new mysqli("localhost", "username", "password", "csvdb");
if ($_FILES['csv']['size'] > 0) {
//get the csv file
$file = $_FILES['csv']['tmp_name'];
$handle = fopen($file, "r");
$i = 0;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if ($i > 0) {
$import = "INSERT into csvtb(project_id,unit_id,phase,building,level,orientation,apartment_type,size,garden,garden_and_terrace_size,bedrooms,parking,floorplan,sold) values('$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]''$data[11]','$data[12]','$data[13],'$data[14])";
$connect->query($import);
}
$i++;
}
fclose($handle);
print "Import done";
}
}
?>
ошибка в строке 30, неопределенного смещение
$import = "INSERT into csvtb(project_id,unit_id,phase,building,level,orientation,apartment_type,size,garden,garden_and_terrace_size,bedrooms,parking,floorplan,sold) values('$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]''$data[11]','$data[12]','$data[13],'$data[14])";
$connect->query($import);
Я проверил мой код, используя много PHP онлайн инструменты проверки, они говорят, что код чист. Думаю, я знаю, что такое ошибка, я думаю, это потому, что я не вставляю в индекс 0, потому что я хочу, чтобы это был идентификатор моей базы данных. Я не уверен, хотя, если бы я был, я бы не спросил. Наверное, мои навыки PHP не так хороши.
Ваш SQL неверен. Youve несколько несовпадающих/болтающихся '' 'там. и если вы получаете неопределенное смещение, вы пытаетесь получить доступ к индексу в массиве, который не существует. do 'var_dump ($ data)', чтобы увидеть, как выглядят данные csv в этой точке. вы, вероятно, найдете его коротким на 1 или более полей по сравнению с другими строками. –
Вы начинаете с индекса 1, я думаю, вам нужно начать с индекса 0. '$ data [0]' вместо '$ data [1]' в вашем запросе 'INSERT'. – RST
@RST это то, о чем я тоже думал и упомянул в своем вопросе – Lynob