• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Import pliku csv do bazy danych

VPS Starter Arubacloud
0 głosów
1,333 wizyt
pytanie zadane 1 lutego 2018 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
zamknięte 7 lutego 2018 przez hiper007

Witam!

Mam pytanko ;) Importuje plik csv do bazy.Import przebiegł poprawnie rekordy dodały się do bazy kod poniżej. Ale oprócz tego co importuje, chcę dodać do każdego wiersza trzy dodatkowe wartości (w trzech następnych kolumnach) przesyłane poprzez zmienne sesyjne:

                                            $login=$_SESSION['login'];
                                            $data_mod=date("H:i:s d-m-Y");
                                            $zadanie='Import';

Oczywiscie mają one być dodane na końcu każdego wiersza ;)

 

    $host='localhost'; 
    $db_user= 'root'; 
    $db_password= 'appt';
    $db= 'awizacja'; 
    $conn=mysql_connect($host,$db_user,$db_password) or die (mysql_error());
    mysql_select_db($db) or die (mysql_error());
    echo $filename=$_FILES["file"]["tmp_name"];
    if($_FILES["file"]["size"] > 0)
    {
        $file = fopen($filename, "r");
        while (($emapData = fgetcsv($file, 10000, ";")) !== FALSE)
        {
           
            $sql = "INSERT into appt (awizacja,data_awizacja,godz_awiz,godz_pod,zamowienie,nazwa,kanal,spedycja,linii,palety,kartony,rampa,komentarz,artykul,il_zamowien,nr_naczepy,	tel_kierowcy,status,color,kod) values ('$emapData[0]','$emapData[1]','$emapData[2]','$emapData[3]','$emapData[4]','$emapData[5]','$emapData[6]','$emapData[7]','$emapData[8]','$emapData[9]','$emapData[10]','$emapData[11]','$emapData[12]','$emapData[13]','$emapData[14]','$emapData[15]','$emapData[16]','$emapData[17]','$emapData[18]','$emapData[19]')";
            mysql_query($sql);
        }
        fclose($file);
        $_SESSION['pliksucc']="Awizacje zostały poprawnie importowane do bazy!";
		require_once "header.php";
		exit();
		
    }
    else
        $_SESSION['plikerr']="Wybierz plik o rozszerzeniu (.csv)";
		require_once "header.php";
		exit();

 

Jak zmodyfikować zapytanie,żeby dodawało do każdego zaimportowanego wiersza po kolumnie kod trzy dodatkowe wartości : login data_mod zadanie i trzech oddzielnych kolumnach.

komentarz zamknięcia: Problem rozwiazany
komentarz 7 lutego 2018 przez hiper007 Stary wyjadacz (11,270 p.)
edycja 7 lutego 2018 przez hiper007
$sql2 = "INSERT into appt_mod (awizacja,id_awizacja,data_awizacja,godz_awiz,godz_pod,zamowienie,nazwa,kanal,spedycja,linii,palety,kartony,rampa,komentarz,artykul,il_zamowien,nr_naczepy,tel_kierowcy,status,color,kod,autor,data_mod,zadanie) values ('$emapData[0]','$id_awizacja','$emapData[1]','$emapData[2]','$emapData[3]','$emapData[4]','$emapData[5]','$emapData[6]','$emapData[7]','$emapData[8]','$emapData[9]','$emapData[10]','$emapData[11]','$emapData[12]','$emapData[13]','$emapData[14]','$emapData[15]','$emapData[16]','$emapData[17]','$emapData[18]','$emapData[19]','$login','$data_mod','$zadanie')";
            mysql_query($sql2);

Temat zamkniety. Sprawa rozwiazana.

komentarz 7 lutego 2018 przez Arkadiusz Waluk Ekspert (287,550 p.)
Wypadałoby podać jak to rozwiązałeś, aby inni szukający mogli znaleźć rozwiązanie, a nie tylko informację "udało się".
1
komentarz 7 lutego 2018 przez hiper007 Stary wyjadacz (11,270 p.)
Rozwiazanie dodane ;)
1
komentarz 7 lutego 2018 przez Arkadiusz Waluk Ekspert (287,550 p.)
Ok.

Od siebie mogę dodać tylko, że funkcje zaczynające się od mysql_ są od PHP 7 usunięte (a od dawna zdeprecjonowane) i nie powinno się ich używać, w PHP 7 kod po prostu nie zadziała. Należy użyć PDO lub mysqli. Podobnie podstawianie danych wprost do zapytania naraża Cię na atak sql injection i np. wyciek lub utratę bazy - zamiast tego powinno się bindować dane (najlepsza opcja, nie ma możliwości ataku) albo chociaż jakkolwiek je zabezpieczać.

Podobne pytania

0 głosów
0 odpowiedzi 1,485 wizyt
pytanie zadane 26 czerwca 2018 w Visual Basic przez niezalogowany
0 głosów
2 odpowiedzi 2,160 wizyt
pytanie zadane 23 maja 2018 w SQL, bazy danych przez hiper007 Stary wyjadacz (11,270 p.)
0 głosów
1 odpowiedź 1,975 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...