Import klappt nicht : query falsch ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Import klappt nicht : query falsch ?

    Hi @ all.

    Ich spar mir das bzgl. ich bin neu als PHP-User etc.
    Wer mein Problem gelesen hat, weiß das sowieso schon.

    Zukünftig benötige ich eine Importfuktion für CSV-Daten.
    Infos dazu habe ich mir schon ergoogelt bzw. hier gefunden.
    Habe auch schon was geschrieben, leider funktioniert der
    letzte Schritt des Eintragens in die DB nicht korrekt.
    Laut Ausgabe ists ein Syntax Fehler. Ich seh ihn aber nicht

    PHP-Code:
    $result=mysql_query("INSERT INTO artikel 
    ( `artikel_id` , `isbn` , `titel` , `untertitel` , `bib_angaben` , `kurztext` ,
     `langtext` , `rubrik` , `neu` , `preis` , `brutto` , `image` , `mwst` ,
     `pfand` , `angebot` )  
    VALUES('"
    .$datenfeld[$i][0]."','".$datenfeld[$i][1]."','".$datenfeld[$i][2]."',
    '"
    .$datenfeld[$i][3]."','".$datenfeld[$i][4]."','".$datenfeld[$i][5]."',
    '"
    .$datenfeld[$i][6]."','".$datenfeld[$i][7]."',''".$datenfeld[$i][8]."',
    '"
    .$datenfeld[$i][9]."','".$datenfeld[$i][10]."','".$datenfeld[$i][11]."',
    '"
    .$datenfeld[$i][12]."','".$datenfeld[$i][13]."','".$datenfeld[$i][14]."')"); 
    Error :
    You have an error in your SQL syntax; check the manual that corresponds
    to your MySQL server version for the right syntax to use near '''','','','','')' at
    line 1

    Was ist an den klammern oder den " falsch ?

    Wer kann mir helfen ?

    Greets & thx

  • #2
    augen auf

    '".$datenfeld[$i][6]."','".$datenfeld[$i][7]."',' [COLOR=red]'[/COLOR] ".$datenfeld[$i][8]."',
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

    Kommentar


    • #3
      Oh man,

      danke...das hab ich nicht gesehen
      Ok...das Prob ist behoben...aber :

      er nimmt mir die Spaltenbeschriftung mit rein was noch einfach zu lösen ist,
      in dem man sie vor dem abspeichern als CSV rausnimmt
      und das Script fügt mir am Ende einen komplett leeren Datensatz ein...
      obwohl keiner mehr da ist.

      wie kann man bei fread oder explode mit angeben die 1.Zeile auszulassen
      u.o. einen leeren Datensatz nicht auszulesen ???

      Greets & thx

      Kommentar


      • #4
        Original geschrieben von Dirk-Kiel
        wie kann man bei fread oder explode mit angeben die 1.Zeile auszulassen
        Prüfe, ob es sich um den ersten Schleifendurchlauf handelt - bspw. mittels eines Flags oder eine Zählers.
        u.o. einen leeren Datensatz nicht auszulesen ???
        Prüfe, ob der Datensaz leer ist, bevor du ihn einfügst.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hi @ wahsaga,

          und wie kann ich das sinnvoll machen ?

          Mein Aufruf sieht folgendermaßen aus :
          PHP-Code:
          $dateiname="import.csv";
          $datei=fopen($dateiname,"r");
          $daten=fread($datei,filesize($dateiname));
          fclose($datei);

          $datensaetze=explode("\n",$daten);

          for(
          $i=0;$i<sizeof($datensaetze);$i++) {
               
          $datenfeld[$i]=explode(";",$datensaetze[$i]);
               } 
          Thx for help

          Kommentar


          • #6
            wie kann man bei fread oder explode mit angeben die 1.Zeile auszulassen
            PHP-Code:
            for ($i 1... 
            u.o. einen leeren Datensatz nicht auszulesen ???
            PHP-Code:
            if ($datensaetze[$i]) $datenfeld[]=explode(";",$datensaetze[$i]); 
            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              [edited]
              ups mein Fehler

              Kommentar


              • #8
                PATSCH
                *vor den Kopf hau*

                Da war ja mal was...man sollte doch nicht soviel anderes machen :-)

                Thx

                Kommentar


                • #9
                  Original geschrieben von Dirk-Kiel
                  PATSCH
                  *vor den Kopf hau*

                  Da war ja mal was...man sollte doch nicht soviel anderes machen :-)

                  Thx
                  OffTopic:
                  WoW zocken?


                  ;-)
                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    So...das Prob mit der 1. Zeile ist behoben...

                    Aber bzgl. des letzten leeren Datensatzes hat sich keine Änderung ergeben.

                    Auch wenn ich zusätzlich abfrage ob er null oder leer ist.

                    Was mich wundert ist auch, dass in der CSV gar keine letzte leere Zeile enthalten ist, mein script aber auch meines wissens nach keine
                    leere zeile hinzufügt...es hat ja nicht die anweisung dafür :
                    PHP-Code:
                    $make erzeuge(leere_zeile); 
                    Noch ne weitere Idee ???

                    Kommentar


                    • #11
                      Dann prüfst du wahrscheinlich falsch.

                      Poste mal den Code, so wie er jetzt aussieht.
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        PHP-Code:
                        $datensaetze=explode("\n",$daten);
                        array_pop($datensaetze); 
                        Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                        PHP Sicherheit
                        PHPUnit[1-2]
                        Professionelle Softwareentwicklung mit PHP 5
                        Professionelle PHP 5-Programmierung

                        Kommentar


                        • #13
                          Aber nur, wenn die letzte Zeile eine Leerzeile ist (ist aber wahrscheinlich)
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Was mich wundert ist auch, dass in der CSV gar keine letzte leere Zeile enthalten ist
                            nicht wenn du die mit excel erstellst, da hast du EINE leere zeile am ende.

                            peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              Original geschrieben von mrhappiness
                              Aber nur, wenn die letzte Zeile eine Leerzeile ist (ist aber wahrscheinlich)
                              Das stimmt natürlich. Man sollte mein Vorschlag nur dann verwenden, wenn man sich sicher ist dass das letzte Feld leer ist.
                              Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                              PHP Sicherheit
                              PHPUnit[1-2]
                              Professionelle Softwareentwicklung mit PHP 5
                              Professionelle PHP 5-Programmierung

                              Kommentar

                              Lädt...
                              X