Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

MySQL-Tabelle mit PHP füllen

Empfohlene Antworten

Veröffentlicht

Hallo,

ich muß hier eine bestehende MySQL-Tabelle per PHP mit einem *.dat - File füllen, das in einem Unix-Filesystem vorliegt und ehrlich gesagt hab ich keinen Plan, wie das geht.

Ich würde mich ja auch gerne einarbeiten (hatte noch nie richtig mit Unix zu tun), aber leider hab ich diese Aufgabe so kurzfristig und dringend bekommen, daß ich Eure Hilfe benötige...

Die *.dat - Datei liegt im Verzeichnis /home/info/export; ansonsten besteht eine Verbindung zur Datenbank.

Idealerweise möchte ich diesen Upload wie erwähnt mit PHP machen.

Wäre toll, wenn mir jemand helfen könnte!

Danke

-etops-

Zielt deine Frage auf das füllen der MySQL DB per PHP ab oder eher auf das Auslesen der Datei? Klingt für mich eher nach letzerem, aber wer weiss. Etwas konkreter darfs dann doch sein.

also, mal für mich zum verständnis:

.dat-datei, wahrscheinlich eine auswertung o.ä. wird von einer software erzeugt und unter /home/info/export auf einer Unix / Linux-Maschine abgelegt.

(Läuft darauf der Webserver / besteht ein SMB / FTP-Zugriff?)

Per PHP soll diese Datei (automatisch aus dem Verzeichnis holen? / manuell den Pfad angeben?) geöffnet (wie gross ist die?) und nach bestimmten kriterien (z.B. 5 Textblöcke / Zahlenwerte, durch ; getrennt, in bestimmte tabellen) in eine MySQL-Datenbank geschrieben werden?

Du bist dran ;)

Also erstmal danke Euch beiden, back.to.roots ist schon mal näher dran ;)

.dat-datei, wahrscheinlich eine auswertung o.ä. wird von einer software erzeugt und unter /home/info/export auf einer Unix / Linux-Maschine abgelegt.

(Läuft darauf der Webserver / besteht ein SMB / FTP-Zugriff?)

Bis hierhin korrekt, das htdocs-Verzeichnis liegt unter /srv/www/htdocs

Der Dateiname ist immer gleich; es soll dann die komplette Datei mit PHP in eine bereits bestehende Tabelle eingelesen werden (Dateigröße etwa 80MB, die Felder in der Tabelle sind alle ok und auch die einzulesenden Werte sind schon "vorbereitet"). Trennung ist das Semikolon.

Danke + Gruß

-etops-

kannst du vielleicht mal ein paar (erfundene) daten aus der datei im entsprechnenden format posten? und die struktur der tabelle?

und was war mit kurzfristig und dringend gemeint? muss das diese woche fertig werden?

Ich weiss immer noch nicht - bzw. du hast noch immer nicht erwähnt - wo dein konkretes Problem liegt.

Du weisst wo die Datei ist

Du weisst wie sie Aussieht

Du hast php auf der Maschine

Davon Ausgehend das du php kannst (da du die Sache gern mit PHP erledigen möchtest) kann ich nicht erkennen wo es Probleme gibt.

Du benötigst nur einen Zugang zur Maschine, einen Texteditor und die Fähigkeit auf der Kommandozeile "php deinscrpt.php" einzutippen zum Testen. Öffnen von Dateien, Zugriff aufs MySQL etc. sollte genauso wie unter Windows gehen.

Datei öffnen, Zeilenweise auslesen, Datenfelder splitten, Query bauen, Query ausführen, rince and reapeat.

So, also mein Quelltext sieht jetzt so aus, aber irgendwas passt noch nicht:


$path = 'home/info/export/';

$rs = system($path . 'mysql --host=localhost --password=
--user=root Web < ./info.info_history.dat');

if ($rs)
{
echo 'Import ok';
}
else
{
echo 'Es ist ein Fehler aufgetreten.';
}
[/PHP]

Ich denke, es fehlt die Zieltabelle?! Wenn ja, wo? Wär toll, wenn sich das nochmal jemand anschauen würde und Euch beiden vorab schon vielen Dank!

Wenn du mysql ... < datei machst erwartet mysql eine Datei mit SQL-Befehlen, d.h. die Zieltabelle wäre dann teil der INSERT Statements in der Datei.

Wenn deine Datei nur Werte enthält musst du erst SQL-Queries daraus machen!

Hallo etops,

ich hab mal was ähnliches gemacht, poste dir einfach meinen Codeauszug, vieleicht kannst du was damit anfangen.

Ich hatte eine csv Datei, die über Formular hochgeladen und dann in die DB eingelesen wurde.

Den Teil, in die DB zu schreiben kannst du übernehmen, dann musst du nur noch was schreiben, um die datei zu öffnen.

$zeilen=file($HTTP_POST_FILES['import']['tmp_name']);

if (is_array($zeilen))
{

foreach($zeilen as $string)
{
$spalten=explode(";",$string);
$warengruppe=$spalten[0];
$artikelcode=$spalten[1];
$bestand=$spalten[2];
$bezeichnung=$spalten[3];
$preis=str_replace(",",".",$spalten[4]);
echo $preis;

$sql=mysql_query("insert into artikel set
warengruppe='$warengruppe', artikelcode='$artikelcode',bestand='$bestand',
bezeichnung='$bezeichnung', preis='$preis'");
if (!$sql)
{
echo mysql_error($db);
$fehler++;
}




}
}

if (!$fehler)
echo "<font class=big>Datei erfolgreich importiert!</font>";

[/php]

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.