Dennis1488 Geschrieben 28. April 2009 Teilen Geschrieben 28. April 2009 (bearbeitet) Hi liebes Forum, Ich habe die Aufgabe per Importscript in PHP eine CVS Datei in ein SQL zu importieren. Das soll bis heute abend sein.... Das ganze soll in etwa im SQL so aussehen: ID Hersteller Produkt Preis Lieferzeit Dazu könnten evtl. noch andere Spalten kommen. Unter ID, Hersteller, usw. sollen dann die entsprechenden Werte sein. Jedoch habe ich noch nie etwas mit SQL und PHP am Hut gehabt.... Könntet Ihr einen Neuling erklären wie man das macht? :confused::confused: Irgendetwas hat er auch noch gesagt von wegen kannst du per PHP oder auch NTF8 schreiben....Bei mir kommen dort nur Fragezeichen :floet: Achso..Er hat noch etwas gesagt von wegen Primärschlüssel setzte :confused: Könnt Ihr mir hier weiterhelfen? Vielen Dank im vorraus Bearbeitet 28. April 2009 von Dennis1488 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. April 2009 Teilen Geschrieben 28. April 2009 Das soll bis heute abend sein.... Dann würde ich mal zügig anfangen. Da Du nicht shreibst welches DBMS Du verwendest ist es schwer zu helfen. DU musst Deine Tabelle anlegen, log Dich in das DBMS ein und erzeuge Datenbank und Tabelle: "create database" bzw "create table ..." sind die SQL Statements, die Du benötigst. Den konkreten Syntax musst Du aber passend zu dem DBMS umsetzen. Ggf hilft Dir das Tool DbVisualizer - The Universal Database Tool Wenn Du Die Tabelle erzeugt hast (inkl PK) dann musst Du das PHP Script schreiben, mit dem Du entweder durch PHP: file - Manual und PHP: explode - Manual bzw PHP: implode - Manual die CSV Datei zerlegst (alternativ geht auch PHP: fgetcsv - Manual) und daraus ein "insert into <table> ...." Statement baust und über die Datenbankschnittstelle (PHP: Datenbankerweiterungen - Manual) von PHP an Deine Datenbank sendest. Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dennis1488 Geschrieben 28. April 2009 Autor Teilen Geschrieben 28. April 2009 (bearbeitet) Hi... vielen Dank für deine Antwort.. =) Hat geklappt. Nun habe ich eine Tabelle jetzt ist aber in der CSV Lieferzeit nicht mit drin. Wie kann ich dem MySQL nun sagen er soll Lieferzeit auslassen? Er trägt dann natürlich Lieferkosten in Lieferzeit ein und Lieferkosten sind dann mit einer 0 versehen. Oder kann ich das irgendwie in der CSV machen? Viele dank für eure Hilfe Bearbeitet 28. April 2009 von Dennis1488 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. April 2009 Teilen Geschrieben 28. April 2009 Hat geklappt. Nun habe ich eine Tabelle jetzt ist aber in der CSV Lieferzeit nicht mit drin. Wie kann ich dem MySQL nun sagen er soll Lieferzeit auslassen? Er trägt dann natürlich Lieferkosten in Lieferzeit ein und Lieferkosten sind dann mit einer 0 versehen. Oder kann ich das irgendwie in der CSV machen? Setze einfach das Feld auf "NULL" = leer, muss natürlich von der Tabelle her zulässig sein Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dennis1488 Geschrieben 28. April 2009 Autor Teilen Geschrieben 28. April 2009 Ne das hat leider nicht geholfen. Er setzt die Werte trotzdem wie gewohnt fort. Muss ich in der CSV evtl auch ein Leerfeld machen damit er das so annimt? Danke für deine schnelle Hilfe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. April 2009 Teilen Geschrieben 28. April 2009 Du wirst irgendwo ein SQL Statement erzeugen, dort trägst für den Wert des Feldes, das eben keinen Inhalt bekommt den Wert "NULL" in das Statement ein. Die CSV sollte nicht verändert werden. Wenn ich eine Tabelle mit 5 Spalten habe, dann kann ich auch nur die Spalten 1,2,5 setzen, indem ich sie über die Namen ansprechen "insert into <fields> VALUES <Werte>" Man kann in der Tabelle auch Defaultwerte mitgeben. Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dennis1488 Geschrieben 28. April 2009 Autor Teilen Geschrieben 28. April 2009 Okay... Vielleicht als kleine Info dazu...ich benutze MySQL mit PHP Admin also mache ich es einfach über den Frontend bereicht...Denn über Komandozeile komme ich nicht weit da ich Null Ahnung von SQL habe leider.... Gibt es vielleicht bei PHPmyAdmin eine einfachere Lösung? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. April 2009 Teilen Geschrieben 28. April 2009 Gibt es vielleicht bei PHPmyAdmin eine einfachere Lösung? Was PHPMyAdmin kann bzw nicht kann, findest Du hier phpMyAdmin Andernfalls ist so ein Importscript auch in ein paar Minuten selbst geschrieben Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dennis1488 Geschrieben 29. April 2009 Autor Teilen Geschrieben 29. April 2009 Vielen Dank für die tollen Antworten. Gibt es eigentlich auch eine Vorlage eines Import Scriptes wo ich einfach nur die Datenbank etc ändern muss? Ich benutze MySQL 5 Danke /Dennis Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dennis1488 Geschrieben 29. April 2009 Autor Teilen Geschrieben 29. April 2009 Ich habe hier ein tolles Script gefunden. Ich habe alles gemacht wie es in der Datei steht jedoch klappt es nicht so ganz Habt Ihr eine Idee warum nicht? Falls ja könntet Ihr ein Anleitung für Dummies beipacken? Vielen Dankcsvtosql1.1.zip Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 29. April 2009 Teilen Geschrieben 29. April 2009 Habt Ihr eine Idee warum nicht? Dir ist schon bewusst, dass die Informationen, die Du postet, absolut unzureichend sind. Welche Fehlermeldung tritt auf? Was steht in der Logdatei? Wo sind die Probleme? (Ggf musst Du in der php.ini auch das Logging einschalten) Falls ja könntet Ihr ein Anleitung für Dummies beipacken? Sicherlich nicht, denn Mitdenken wird von Dir erwartet. Warum schreibst Du das Script nicht selbst? Textdatei in Array einlesen, Das Array durchlaufen und jedes Element / Zeile mit "explode" in Spalten trennen. SQL Statement (Insert) mit den Spalten erzeugen und ausführen. Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dennis1488 Geschrieben 29. April 2009 Autor Teilen Geschrieben 29. April 2009 Weil ich leider keine Ahnung von dem ganzen habe. Ich bin auch schon eifrig dabei mich in SQL, PHP und alles ein zu lesen aber bis ich das drauf habe das ich mal eben ein script schreiben kann dauert es sicher noch eine weile... Also Fehler ist folgender. Ich gebe Ihm den Dateipfad und alles. Wird auch alles auf dem Webserver richtig angezeigt das klicke ich auf den Button "Und Los" aber es passiert leider nix. Der Pfad ist aber definitiv richtig.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
T3D Geschrieben 29. April 2009 Teilen Geschrieben 29. April 2009 das könnte dir helfen, steht sogar nen tolles bsp bei PHP: fgetcsv - Manual Ted Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dennis1488 Geschrieben 29. April 2009 Autor Teilen Geschrieben 29. April 2009 Also nun hat alles geklappt ^^ Nun habe ich aber eine CSV Datei bekommen wo Preise enthalten sind die z.b so aussehen: 2,34 Wenn ich nun die CSV Datei Importiere dann sieht es so aus 2.00 ist das normal? Wie kann ich die Preise so anzeigen lassen in der MySQL Tabelle: 2,34? Wenn ich das auch noch weiss dann bin ich rundum glücklich ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
T3D Geschrieben 29. April 2009 Teilen Geschrieben 29. April 2009 im englischen zahlenformat gibt es nun mal kein "," sondern ein "." entweder du formatierst die zahlen im excel um.. oder dein php script macht das Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.