tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
569
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Loveboat
    Loveboat Loveboat ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    244
    Hallo Leute,

    ich stehe vor einem Problem und weiß nicht weiter, hoffe mir kann jemand helfen. Und zwar möchte ich in meinem PHP-Script eine Tabelle in meiner Datenbank anlegen.
    Zuerst wird aus einer Datei die erste Zeile (CSV mit ; getrennt) eingelesen und in ein Array geschrieben. Diese sollen dann meine Felder in der Tabelle werden:

    PHP-Code:
    $col 0;
    $thisFileContent file($_FILES["custlist"]["tmp_name"]);  
    foreach (
    $thisFileContent as $zeile
        { 
        
    $coloum[$col] = explode(";"$zeile);
        
    $col++;
        } 
    Anschließend soll eine Tabelle in meiner Datenbank angelegt werden, die Felder sollen aus diesem Array angelegt werden:

    PHP-Code:
    $sqlCreate "CREATE TABLE `BMW_temptuev` (";
    for(
    $c=0;$c<count($newColoum);$c++)
        {
        
    $sqlCreate .= "`".$newColoum[$c]."` VARCHAR( 100 ) NOT NULL, ";
        }

    $sqlCreate .= "PRIMARY KEY ( `Key Kunde` )) ENGINE = MYISAM;"
    Das Script funktioniert auch soweit, wenn ich mir das Ergebnis von $sqlCreate via var_dump oder echo ausgeben lasse kommt folgendes heraus:

    Code :
    1
    
    CREATE TABLE `BMW_temptuev` (`Key Kunde` VARCHAR( 100 ) NOT NULL, `Key Fahrzeug` VARCHAR( 100 ) NOT NULL, `Kd. Nr.` VARCHAR( 100 ) NOT NULL, `Matchcode` VARCHAR( 100 ) NOT NULL, `Name` VARCHAR( 100 ) NOT NULL, `Name 2` VARCHAR( 100 ) NOT NULL, `Anrede` VARCHAR( 100 ) NOT NULL, `Anrede (Nutzer)` VARCHAR( 100 ) NOT NULL, `Anredecode` VARCHAR( 100 ) NOT NULL, `Anrede9` VARCHAR( 100 ) NOT NULL, `Titel` VARCHAR( 100 ) NOT NULL, `Tel. gesch.` VARCHAR( 100 ) NOT NULL, `Telefax` VARCHAR( 100 ) NOT NULL, `PLZ` VARCHAR( 100 ) NOT NULL, `Ort` VARCHAR( 100 ) NOT NULL, `Adresse` VARCHAR( 100 ) NOT NULL, `Strasse` VARCHAR( 100 ) NOT NULL, `Bundesland` VARCHAR( 100 ) NOT NULL, `E-Mail` VARCHAR( 100 ) NOT NULL, `Kreditkennzeichen` VARCHAR( 100 ) NOT NULL, `Notiz zum Kunden` VARCHAR( 100 ) NOT NULL, `Kundenname` VARCHAR( 100 ) NOT NULL, `Vorname/Anspr.` VARCHAR( 100 ) NOT NULL, `Ansprechpartner (Nutzer)` VARCHAR( 100 ) NOT NULL, `Fzg Typ` VARCHAR( 100 ) NOT NULL, `Fabrikat` VARCHAR( 100 ) NOT NULL, `Modell` VARCHAR( 100 ) NOT NULL, `Modell Nr.` VARCHAR( 100 ) NOT NULL, `amtl. Kennz.` VARCHAR( 100 ) NOT NULL, `Fahrzeugidentnr.` VARCHAR( 100 ) NOT NULL, `Motornummer` VARCHAR( 100 ) NOT NULL, `Erstzulassung` VARCHAR( 100 ) NOT NULL, `AU` VARCHAR( 100 ) NOT NULL, `HU` VARCHAR( 100 ) NOT NULL, `Batterieprüfdatum` VARCHAR( 100 ) NOT NULL, `Tel. Privat` VARCHAR( 100 ) NOT NULL, `Tel. Mobil` VARCHAR( 100 ) NOT NULL, `KM-Stand` VARCHAR( 100 ) NOT NULL, `Key Verkäufer` VARCHAR( 100 ) NOT NULL, `Verkäufer Nr.` VARCHAR( 100 ) NOT NULL, `Verkäufer` VARCHAR( 100 ) NOT NULL, `Anzeige im Welcome-Terminal` VARCHAR( 100 ) NOT NULL, `Anzeige im Aftersales Marketing` VARCHAR( 100 ) NOT NULL, `Motortyp` VARCHAR( 100 ) NOT NULL, `Farbcode` VARCHAR( 100 ) NOT NULL, `Polstercode` VARCHAR( 100 ) NOT NULL, `Leittyp` VARCHAR( 100 ) NOT NULL, `Pseudotyp` VARCHAR( 100 ) NOT NULL, `Letzter Servicebesuch` VARCHAR( 100 ) NOT NULL, `Finanzierungsart` VARCHAR( 100 ) NOT NULL, `Finanzierungsablauf` VARCHAR( 100 ) NOT NULL, `Geburtsdatum` VARCHAR( 100 ) NOT NULL, `Kundengruppe` VARCHAR( 100 ) NOT NULL, `Betreuende Firma` VARCHAR( 100 ) NOT NULL, `Betreuende Filiale` VARCHAR( 100 ) NOT NULL, `Weitere Notizen` VARCHAR( 100 ) NOT NULL, `Letzter Kontakt` VARCHAR( 100 ) NOT NULL, `Branche` VARCHAR( 100 ) NOT NULL, `Kreditlimit` VARCHAR( 100 ) NOT NULL, `Kundenmerkmal` VARCHAR( 100 ) NOT NULL, `Fahrer` VARCHAR( 100 ) NOT NULL, `Gültigkeitsdatum Führerschein` VARCHAR( 100 ) NOT NULL, `Berufsgruppe` VARCHAR( 100 ) NOT NULL, `Präferierte Kontaktaufnahme` VARCHAR( 100 ) NOT NULL, `Weitere Telefonnummern` VARCHAR( 100 ) NOT NULL, `Wiederzulassung` VARCHAR( 100 ) NOT NULL, `Garantieverlängerung` VARCHAR( 100 ) NOT NULL, `Getriebekennbuchstabe` VARCHAR( 100 ) NOT NULL, `Servicetyp` VARCHAR( 100 ) NOT NULL, `Produktionsdatum` VARCHAR( 100 ) NOT NULL, `Eigenverkauf` VARCHAR( 100 ) NOT NULL, `Auslieferungsdatum` VARCHAR( 100 ) NOT NULL, `Nächst. Bremsflüssigkeitswechsel` VARCHAR( 100 ) NOT NULL, `Nächster Service (Datum)` VARCHAR( 100 ) NOT NULL, `Nächster Service (km)` VARCHAR( 100 ) NOT NULL, `Nächst. Zahnriemenwechsel (Datum)` VARCHAR( 100 ) NOT NULL, `Nächst. Zahnriemenwechsel (km)` VARCHAR( 100 ) NOT NULL, `Nächster SP Termin` VARCHAR( 100 ) NOT NULL, `Bemerkung` VARCHAR( 100 ) NOT NULL, `Letzter Service Berater (DMS)` VARCHAR( 100 ) NOT NULL, `Modellcode` VARCHAR( 100 ) NOT NULL, `Key Betrieb Kunde` VARCHAR( 100 ) NOT NULL, `ID Betrieb Kunde` VARCHAR( 100 ) NOT NULL, `Firma Betrieb Kunde` VARCHAR( 100 ) NOT NULL, `Key Betrieb Fahrzeug` VARCHAR( 100 ) NOT NULL, `ID Betrieb Fahrzeug` VARCHAR( 100 ) NOT NULL, `Firma Betrieb Fahrzeug` VARCHAR( 100 ) NOT NULL, `Kd. Nr. (externe Systeme)` VARCHAR( 100 ) NOT NULL, PRIMARY KEY ( `Key Kunde` )) ENGINE = MYISAM;

    Wenn ich dann zum Schluß mit
    PHP-Code:
    mysql_query($sqlCreate); 
    die Tabelle anlegen lassen möchte, passiert nix. Es wird keine Tabelle angelegt. Paste ich das Ergebnis allerdings via SQL in PHPMYADMIN rein, wird die Tabelle schön ordentlich wie gewollt angelegt.

    Das gleiche Problem habe ich dann auch, wenn ich die Tabelle befüllen möchte (vorher manuell angelegt). Das Ergebniss passt, ich kann es auch via PHPMYADMIN pasten, aber nicht mittels meinem Script:

    PHP-Code:
    for($row=1;$row<count($coloum);$row++)
        {
        
    $sqlInsert[$row] = "INSERT INTO `BMW_temptuev` (";
        for(
    $e=0;$e<count($newColoum);$e++)
            {
            
    $sqlInsert[$row] .= "`".$newColoum[$e]."`";
            if(
    $e<count($newColoum)-1)
               
    $sqlInsert[$row] .= ", ";
            }
        
    $sqlInsert[$row] .= ") VALUES (";
        for(
    $f=0;$f<count($newColoum);$f++)
            {
            
    $sqlInsert[$row] .= "'".$coloum[$row][$f]."'";
            if(
    $f<count($newColoum)-1)
               
    $sqlInsert[$row] .= ", ";
            }
        
    $sqlInsert[$row] .= ")";
        
    mysql_query($sqlInsert[$row]);
        } 

    Weiß jemand wo MEIN Denkfehler ist

    Danke und Gruß
    Loveboat
     

  2. #2
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Da ich es nirgendwo bei dir sehe, stelle ich einfach mal die Frage, ob du überhaupt eine Verbindung zur Datenbank aufbaust mit mysql_connect() und mysql_select_db(). Ich hoffe doch, dass du das weißt.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  3. #3
    Avatar von Loveboat
    Loveboat Loveboat ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    244
    Hi,

    ja die baue ich auf und die funktioniert auch. Ich habe im selben Script schon SQL-Anweisungen am laufen, welche funktionieren, diese geben mir Inhalte aus anderen Tabellen aus.

    Leider kann ich keine neue Tabelle anlegen und befüllen.

    Gruß
    Loveboat
     

  4. #4
    c4esar c4esar ist offline Mitglied Bronze
    Registriert seit
    Jan 2010
    Beiträge
    40
    Hi!
    Könnte es evtl. sein, dass durch die Sonderzeichen und Umlaute ein Zeichensatz-Problem entsteht, das die Query ungültig werden lässt?
     
    frdl. Gruss, c4esar

  5. #5
    Avatar von Loveboat
    Loveboat Loveboat ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    244
    Das ist die Frage, aber warum kann ich das Ergebnis dann in PHPMYADMIN pasten und die Tabelle wird angelegt Auch da sind die Sonderzeichen drin.
     

  6. #6
    c4esar c4esar ist offline Mitglied Bronze
    Registriert seit
    Jan 2010
    Beiträge
    40
    Also ich habe bei mir jetzt mal beide Varianten mit Deinem Ausgabe-Code ausprobiert, und es funktioniert sowohl mit phpmyadmin, als auch mit einer einfachen index.php...
     
    frdl. Gruss, c4esar

  7. #7
    Avatar von Loveboat
    Loveboat Loveboat ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    244
    Hi,

    also ich habe mal versucht den Fehler einzugrenzen und hab auch was gefunden warum das Anlegen der Tabelle scheitert, aber weiß noch nicht genau wie ich es lösen kann.

    Also ich lese die erste Zeile aus dem file (CSV mit ; separiert) in ein Array ein.
    Mittels "explode(";", $zeile)" wird jeder einzelne Wert in ein Element des Arrays geladen. Dies funktioniert auch soweit.

    Entscheidend für das Scheitern ist der letzte Wert, dort ist noch ein nicht sichtbares Zeichen angefügt. Leider weiß ich nicht welches das ist und wie ich es entfernen kann.


    CREATE TABLE `BMW_temptuev` (`Key Kunde` VARCHAR( 100 ) NOT NULL , `Key Fahrzeug` VARCHAR( 100 ) NOT NULL , `Kd. Nr.` VARCHAR( 100 ) NOT NULL , `Matchcode` VARCHAR( 100 ) NOT NULL , `Name` VARCHAR( 100 ) NOT NULL , `Name 2` VARCHAR( 100 ) NOT NULL , `Anrede` VARCHAR( 100 ) NOT NULL , `Anrede (Nutzer)` VARCHAR( 100 ) NOT NULL , `Anredecode` VARCHAR( 100 ) NOT NULL , `Anrede` VARCHAR( 100 ) NOT NULL , `Titel` VARCHAR( 100 ) NOT NULL , `Tel. gesch.` VARCHAR( 100 ) NOT NULL , `Telefax` VARCHAR( 100 ) NOT NULL , `PLZ` VARCHAR( 100 ) NOT NULL , `Ort` VARCHAR( 100 ) NOT NULL , `Adresse` VARCHAR( 100 ) NOT NULL , `Strasse` VARCHAR( 100 ) NOT NULL , `Bundesland` VARCHAR( 100 ) NOT NULL , `E-Mail` VARCHAR( 100 ) NOT NULL , `Kreditkennzeichen` VARCHAR( 100 ) NOT NULL , `Notiz zum Kunden` VARCHAR( 100 ) NOT NULL , `Kundenname` VARCHAR( 100 ) NOT NULL , `Vorname/Anspr.` VARCHAR( 100 ) NOT NULL , `Ansprechpartner (Nutzer)` VARCHAR( 100 ) NOT NULL , `Fzg Typ` VARCHAR( 100 ) NOT NULL , `Fabrikat` VARCHAR( 100 ) NOT NULL , `Modell` VARCHAR( 100 ) NOT NULL , `Modell Nr.` VARCHAR( 100 ) NOT NULL , `amtl. Kennz.` VARCHAR( 100 ) NOT NULL , `Fahrzeugidentnr.` VARCHAR( 100 ) NOT NULL , `Motornummer` VARCHAR( 100 ) NOT NULL , `Erstzulassung` VARCHAR( 100 ) NOT NULL , `AU` VARCHAR( 100 ) NOT NULL , `HU` VARCHAR( 100 ) NOT NULL , `Batterieprüfdatum` VARCHAR( 100 ) NOT NULL , `Tel. Privat` VARCHAR( 100 ) NOT NULL , `Tel. Mobil` VARCHAR( 100 ) NOT NULL , `KM-Stand` VARCHAR( 100 ) NOT NULL , `Key Verkäufer` VARCHAR( 100 ) NOT NULL , `Verkäufer Nr.` VARCHAR( 100 ) NOT NULL , `Verkäufer` VARCHAR( 100 ) NOT NULL , `Anzeige im Welcome-Terminal` VARCHAR( 100 ) NOT NULL , `Anzeige im Aftersales Marketing` VARCHAR( 100 ) NOT NULL , `Motortyp` VARCHAR( 100 ) NOT NULL , `Farbcode` VARCHAR( 100 ) NOT NULL , `Polstercode` VARCHAR( 100 ) NOT NULL , `Leittyp` VARCHAR( 100 ) NOT NULL , `Pseudotyp` VARCHAR( 100 ) NOT NULL , `Letzter Servicebesuch` VARCHAR( 100 ) NOT NULL , `Finanzierungsart` VARCHAR( 100 ) NOT NULL , `Finanzierungsablauf` VARCHAR( 100 ) NOT NULL , `Geburtsdatum` VARCHAR( 100 ) NOT NULL , `Kundengruppe` VARCHAR( 100 ) NOT NULL , `Betreuende Firma` VARCHAR( 100 ) NOT NULL , `Betreuende Filiale` VARCHAR( 100 ) NOT NULL , `Weitere Notizen` VARCHAR( 100 ) NOT NULL , `Letzter Kontakt` VARCHAR( 100 ) NOT NULL , `Branche` VARCHAR( 100 ) NOT NULL , `Kreditlimit` VARCHAR( 100 ) NOT NULL , `Kundenmerkmal` VARCHAR( 100 ) NOT NULL , `Fahrer` VARCHAR( 100 ) NOT NULL , `Gültigkeitsdatum Führerschein` VARCHAR( 100 ) NOT NULL , `Berufsgruppe` VARCHAR( 100 ) NOT NULL , `Präferierte Kontaktaufnahme` VARCHAR( 100 ) NOT NULL , `Weitere Telefonnummern` VARCHAR( 100 ) NOT NULL , `Wiederzulassung` VARCHAR( 100 ) NOT NULL , `Garantieverlängerung` VARCHAR( 100 ) NOT NULL , `Getriebekennbuchstabe` VARCHAR( 100 ) NOT NULL , `Servicetyp` VARCHAR( 100 ) NOT NULL , `Produktionsdatum` VARCHAR( 100 ) NOT NULL , `Eigenverkauf` VARCHAR( 100 ) NOT NULL , `Auslieferungsdatum` VARCHAR( 100 ) NOT NULL , `Nächst. Bremsflüssigkeitswechsel` VARCHAR( 100 ) NOT NULL , `Nächster Service (Datum)` VARCHAR( 100 ) NOT NULL , `Nächster Service (km)` VARCHAR( 100 ) NOT NULL , `Nächst. Zahnriemenwechsel (Datum)` VARCHAR( 100 ) NOT NULL , `Nächst. Zahnriemenwechsel (km)` VARCHAR( 100 ) NOT NULL , `Nächster SP Termin` VARCHAR( 100 ) NOT NULL , `Bemerkung` VARCHAR( 100 ) NOT NULL , `Letzter Service Berater (DMS)` VARCHAR( 100 ) NOT NULL , `Modellcode` VARCHAR( 100 ) NOT NULL , `Key Betrieb Kunde` VARCHAR( 100 ) NOT NULL , `ID Betrieb Kunde` VARCHAR( 100 ) NOT NULL , `Firma Betrieb Kunde` VARCHAR( 100 ) NOT NULL , `Key Betrieb Fahrzeug` VARCHAR( 100 ) NOT NULL , `ID Betrieb Fahrzeug` VARCHAR( 100 ) NOT NULL , `Firma Betrieb Fahrzeug` VARCHAR( 100 ) NOT NULL , `Kd. Nr. (externe Systeme) ` VARCHAR( 100 ) NOT NULL , PRIMARY KEY ( `Key Kunde` ) ) ENGINE = MYISAM ;


    Hoffe jemand kann mir sagen wie ich dieses nichtsichtbare Zeichen entfernen kann.

    Danke und Gruß
    Loveboat
     

  8. #8
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Einfachste Möglichkeit: trim()
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  9. #9
    Avatar von Loveboat
    Loveboat Loveboat ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Beiträge
    244
    okay, danke den "Mist" hab ich gebraucht und nicht gefunden, kannte das auch nicht, wollte es schon umständlich mit irgendwelchen regex machen

    Jetzt geht es.

    Danke Euch
     

Ähnliche Themen

  1. Eingebundene Datenbank + Tabelle erstellen
    Von dg87 im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 21.01.10, 11:38
  2. Antworten: 3
    Letzter Beitrag: 19.09.08, 18:21
  3. Datenbank/Tabelle erstellen und Import
    Von Cpt_Sulo im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 13.06.08, 22:38
  4. Neue Tabelle mit C-Builder 5 in Datenbank erstellen
    Von KappRa im Forum Borland CBuilder und VCL
    Antworten: 0
    Letzter Beitrag: 03.04.05, 17:49
  5. XML-Datei aus Datenbank-Tabelle erstellen ?
    Von CoderMiG im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 02.08.04, 14:49