2016-05-14 1 views
-1

Написал мой код для работы с определенным форматом .cvs, и он работал для формата файлов, которые у меня были. Теперь формат файла .cvs изменился.PHP/MySQL Вставка в неправильной колонке

Итак, похоже, что все вставляется, но оно переместилось. Более конкретно, все переместилось на одну целую колонку справа.

Мне удалось изменить код, чтобы он двигался дальше вправо, но я не смог его переместить влево.

Вот часть моего кода, имеющие проблемы:

if($deleteSuccess == 1){ 

    echo "Now inserting all new records"; 
    $handle = fopen($target_file, "r"); 
    $count = 0; 
    while (($data = fgetcsv($handle, 0, ",")) !== FALSE) { 
     $name = $data[0]; 
     $correct0 = str_replace("'", "", $name); 
     $correct1 = str_replace("'", "", $data[1]); 
     $correct2 = str_replace("'", "", $data[2]); 
     $correct3 = str_replace("'", "", $data[3]); 
     $correct4 = str_replace("'", "", $data[4]); 
     $correct5 = str_replace("'", "", $data[5]); 
     $correct6 = str_replace("'", "", $data[6]); 
     $correct7 = str_replace("'", "", $data[7]); 


     $import="INSERT into DVDCatalog.testtable(`Volume Name`,`DVD Number`,`Type`,`Category`,`Date`,`Author`,`Availablity`,`Picture`) values('$name','$correct1','$correct2','$correct3','$correct4','$correct5','$correct6','$correct7')"; 
     $count = $count + 1; 
     mysqli_query($conn, $import); 
     if(mysqli_error($conn)){ 
      echo "<br> Problem with --> ".$import."<br>"; 

Спасибо.

+0

Я бы рекомендовал использовать более описательные имена для переменных, что-то вроде '$ dvd_num' или такие, потому как у вас сейчас немного запутанным читать. – Jhecht

+1

Почему вы используете '$ name' вместо' $ correct0'? – Marius

+0

Также очень сложно воспроизвести любую ошибку, которую вы получаете, без двух необходимых нам вещей: 'create table' для таблицы, которую вы используете, и копии файла, который вы пытаетесь использовать (или просто строковой версии добавлено в сообщение) – Jhecht

ответ

0

Если все переместились в течение 1 колонка справа, то данные, которые раньше были в $data[0], $data[1] и т.д. теперь в $data[1], $data[2] и т.д. Чтобы получить добавляемые данные так же, как вы привыкли, вы не должен делать ничего с $data[0], потому что это новое поле, которое было добавлено в CSV-файл, но не соответствует старому.

Так оно и должно быть:

$correct0 = str_replace("'", "", $data[1]); 
    $correct1 = str_replace("'", "", $data[2]); 
    $correct2 = str_replace("'", "", $data[3]); 
    $correct3 = str_replace("'", "", $data[4]); 
    $correct4 = str_replace("'", "", $data[5]); 
    $correct5 = str_replace("'", "", $data[6]); 
    $correct6 = str_replace("'", "", $data[7]); 
    $correct7 = str_replace("'", "", $data[8]); 
Смежные вопросы