Inhoudsopgave
Sommige webprojecten vereisen het beheer van grote gegevenslijsten, zoals product-, verkoop-, gebruikers- en nieuwslijsten.Veel mensen vinden het gemakkelijker om deze gegevens offline in een spreadsheet te hebben.
Het doel van deze tutorial is om de import te kunnen uitvoeren ongeacht het programma, of het nu Excel of Libreoffice is of een andere optie die voor de gebruiker beschikbaar is.
Nadat u een MySQL-database hebt gemaakt, moet u deze vullen met informatie. De databasegegevens bevinden zich meestal in een door komma's beperkt bestand of CSV en moeten worden geïmporteerd in de MySQL-database. Dit is een heel eenvoudige taak met behulp van de ingebouwde functies van PHP die het gemakkelijk maken om vanuit een CSV-bestand te importeren en naar een MySQL-database te exporteren.
In dit geval hebben we een prijslijst voor service en computeronderdelen.
[kleur = # 0000cd] MAAK TABEL ALS NIET BESTAAT `prijzen` ([/ kleur]
[kleur = # 0000cd] `id` int (10) NIET NULL AUTO_INCREMENT, [/ kleur]
[kleur = # 0000cd] `concept` varchar (255) STANDAARD NULL, [/ kleur]
[kleur = # 0000cd] `prijs` decimaal (10,2) STANDAARD NULL, [/ kleur]
[kleur = # 0000cd] PRIMAIRE SLEUTEL (`id`) [/ kleur]
[kleur = # 0000cd]) MOTOR = MyISAM STANDAARD CHARSET = utf8 AUTO_INCREMENT = 1; [/ kleur]
Nu de php-code die al het werk doet
[kleur = # 0000cd] <? // we maken verbinding met de database [/ kleur]
[kleur = # 0000cd] $ connect = mysql_connect ('localhost', 'gebruiker', 'wachtwoord'); [/ kleur]
[kleur = # 0000cd] als (! $ verbinding maken) {[/ kleur]
[color = # 0000cd] die ('Kan geen verbinding maken met MySQL:'. mysql_error ()); [/ color]
[kleur = # 0000cd]} [/ kleur]
[kleur = # 0000cd] $ connectdb = mysql_select_db ('Services', $ connect); [/ kleur]
[kleur = # 0000cd] // We uploaden het csv-bestand dat afkomstig is van het formulier [/ kleur]
[color = # 0000cd] move_uploaded_file ($ _ FILES ["file"] ["tmp_name"], $ upload_dir. "/". $ FILES ["file"] ["tmp_name"]); [/ color]
[kleur = # 0000cd] $ cvs = $ upload_dir. "/". $ _FILES ["bestand"] ["naam"]; [/ kleur]
[kleur = # 0000cd] // rij telt het aantal rijen in het bestand begint bij 0 [/ kleur]
[kleur = # 0000cd] $ rij = 0; [/ kleur]
[kleur = # 0000cd] $ fp = fopen ($ cvs. "", "r"); [/ kleur]
[kleur = # 0000cd] while (! feof ($ fp)) {// Ik lees het bestand regel voor regel [/ kleur]
[kleur = # 0000cd] $ rij ++; [/ kleur]
[color = # 0000cd] // Ik sla de eerste rij over omdat deze de titels heeft en ik ben niet geïnteresseerd om ze in de database in te voegen [/ color]
[kleur = # 0000cd] als ($ rij> 1) {[/ kleur]
[kleur = # 0000cd] // De regel die ik lees, scheid ik met explode en ik geef aan dat deze wordt gescheiden door; [/ kleur]
[kleur = # 0000cd] $ data = exploderen (";", fgets ($ fp)); [/ kleur]
[kleur = # 0000cd] $ id = $ data [0]; [/ kleur]
[kleur = # 0000cd] $ concept = $ data [1]; [/ kleur]
[kleur = # 0000cd] $ prijs = $ gegevens [2]; [/ kleur]
[color = # 0000cd] $ query = "INSERT INTO prijzen (id, concept, prijs) VALUES ($ data [0], '$ data [1]', '$ data [2]')"; [/ color]
[kleur = # 0000cd] mysql_query ($ query, $ connect); [/ kleur]
[kleur = # 0000cd] // einde van while-lus [/ kleur]
[kleur = # 0000cd]} [/ kleur]
[kleur = # 0000cd]} [/ kleur]
[kleur = # 0000cd] // sluit het bestand [/ kleur]
[kleur = # 0000cd] fclose ($ csv); [/ kleur]
[kleur = # 0000cd] echo "Import voltooid !!"; [/ kleur]
[kleur = # 0000cd] mysql_close ($ verbinden); [/ kleur]
[kleur = # 0000cd]?> [/ kleur]
U kunt dit script ook gebruiken en het flexibeler maken, zodat de gebruiker het bestand in een html-vorm kan registreren met
[kleur = # 0000cd] [/ kleur]
[kleur = # 0000cd] [/ kleur]
[kleur = # 0000cd] [/ kleur]
en dus in staat zijn om CSV-bestanden te uploaden en gegevens uit dat CSV-bestand te importeren naar elke mysql-database of zelfs naar meerdere vanuit een enkel bestand. Er zijn veel aanpassingen die met dit script kunnen worden gemaakt en op de gewenste manier kunnen worden gebruikt.