login  Naam:   Wachtwoord: 
Registreer je!
 Forum

php script voor bulk data in mysql

Offline martino007 - 29/09/2015 20:25
Avatar van martino007Nieuw lid Ik ben geen php specialist
Ik zoek een werkend php sript om grote excel-bestanden te importeren in een mysql database . Dus niet met phpmyadmin
Ik heb reeds gezocht op internet maar ofwel werken de scripts niet ofwel kunnen ze geen grote bestanden aan
Kan iemand mij helpen aub
Dank
Martin

4 antwoorden

Gesponsorde links
Offline Thomas - 29/09/2015 20:40 (laatste wijziging 29/09/2015 20:42)
Avatar van Thomas Moderator Welkom.

Ik neem aan dat je de excelbestanden omzet naar .csv ofzo? Deze zijn dan makkelijk (en efficient) in te lezen.

Dan is het natuurlijk belangrijk dat je ook een goede database-structuur hebt waarbinnen je importeert.

En tot slot is daar het importeerscript in PHP. Ik vind het altijd handig als deze heel uitgebreid terugkoppeling geeft over wat er wel / niet lukt zodat je wat test-runs kunt doen en je tegelijkertijd het script kunt schrijven en debuggen.

Om hoeveel gegevens (records / tabellen / kolommen) gaat het? Wat voor soort data is het et cetera?

Ik denk niet dat er voor zoiets een out-of-the-box oplossing bestaat en dit toch een maatwerk script wordt.

Daarnaast: betreft dit een eenmalige of periodieke import (dat bepaalt namelijk nogal in extreme mate je aanpak)?

En wat is de bron van je Excel-bestand? Is deze handmatig gevuld over tijd (dit kan tevens inhouden dat je een zekere fout-tolerantie zult moeten inbouwen want handwerk is foutgevoelig(er)), automatisch gegenereerd door een of ander pakket (in welk geval er een grote kans is dat je ook andere exportmogelijkheden hebt!) of iets anders?

Op dit moment is je informatie nogal summier om hier een passend advies bij te geven maar mijn eerste ingeving zou zijn: maatwerk.
Offline martino007 - 30/09/2015 09:03
Avatar van martino007 Nieuw lid Beste
Het betreft een Excel bestand (1 werkblad) van zowat een 5000 records (kan later evolueren tot 10.000 records) . Iedere record heeft ongeveer een 15 velden (tekst, valuta en datums) .
De Excel-file heb ik eens geëxporteerd als csv-file en daar dan een sql-file van gemaakt. Met phpmyadmin lukt het om te importeren in de mysql-tabel als ik er een zipke van maak (naamfile.sql.zip).
Deze csv-file moet om de 14 dagen geimporteerd worden in de mysql-tabel. De gegevens uit die tabel moeten eerst verwijderd worden.
Mijn vraag is er een php-script dat dergelijke bestanden kan importeren in Mysql
OF: Kan ik de excel-file koppelen met Mysql , bv met ODBC ?

Met dank
Martin
Offline Thomas - 30/09/2015 12:40 (laatste wijziging 30/09/2015 12:43)
Avatar van Thomas Moderator Een xls bestand is een binair bestand volgens mij, en was voorheen een propietary format. Long story short: de data die wordt gehuisvest in zo'n bestand is niet echt makkelijk rechtstreeks uit te lezen door andere programma's dan de programma's die hier specifiek voor geschreven zijn.

Een csv bestand is een "ASCII" bestand, oftewel is rechtstreeks in te zien als tekstbestand.

PHP heeft out-of-the-box functies om CSV-bestanden uit te lezen. Indien je het Excel-bestand dus eerst omzet naar een CSV-bestand dan kan PHP hier prima mee over weg. Er zijn in het verleden (en tegenwoordig wellicht nog steeds) projecten geweest waarbij (specifieke versies van) Excel bestanden rechtstreeks uitgelezen konden worden. Ik weet niet of huidige formats nog ondersteund worden.

Zelfs als je zo'n koppeling kunt leggen (ODBC - MySQL) zul je extra code moeten schrijven om de eindjes aan elkaar te knopen.

Maar als je even een stapje terug doet, en kijkt naar wat er gebeurt dan is dit abstract gezien het volgende:

Je bent continu data van A naar B aan het slepen. Waarom wil je dit? Wat kun je in A doen wat je in B niet kunt doen en vice versa? Het handigste zou nog altijd zijn om één plaats te hebben waar je deze data invoert, inziet, bijwerkt en verwijdert, en één applicatie hebt waarmee je dit doet. Tijd voor een webapplicatie?

De weg XLS > CSV > PHP-script > MySQL werkt, maar dat lijkt mij bewerkelijk, te meer omdat je dit periodiek wilt gaan doen.

Een alternatief is wellicht een Access-database, waarbij je invoer- en overzichtsschermen bijprogrammeert, maar dat zal in Visual Basic of equivalent moeten gebeuren. Mogelijk zit daarbij wel standaard exportfunctionaliteit zodat je vanuit je Access-database (die dan de bron van je data vormt) een export kunt maken naar Excel.

Wat ik mij eerst zou afvragen is: wat wil ik op de middellange termijn met deze data kunnen doen (en in welke vorm), want het komt mij over als meer overhead door de introductie van een export naar MySQL.
Offline martino007 - 02/10/2015 12:03
Avatar van martino007 Nieuw lid Beste
Dank voor de duidelijke info
Ben begonnen aan iets in Access
Dank
Martin
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.16s