Ankündigung

Einklappen
Keine Ankündigung bisher.

LOAD DATA INFILE -> Anfängerproblem

Einklappen

Neue Werbung 2019

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

  • #16
    erc Also der Screenshot sieht nicht nach fixed-length bezüglich der Namen aus ... oder die Namen sind ein wüstes Datenagglomerat ...

    PS
    SUBSTR(@raw,1,24)

    Kommentar


    • #17
      hey danke leute

      mal schauen ob das so klappt.

      ich bekomme immer ne Meldung:

      #1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ' 1, 0)' in Zeile 5

      Kommentar


      • #18
        Zeigst du uns auch deinen Code?

        Kommentar


        • #19
          Hier ist der Code:

          PHP-Code:
          LOAD DATA LOCAL INFILE 'C:/Intranet/htdocs/Pip-TXT.TXT' INTO TABLE mobatime
          (@raw)
          SET
          Name
          =TRIM(SUBSTR(@raw,1,24)),
          Anwesend=IF(TRIM(SUBSTR(@raw,24,26) != ""10
          edit: der erste Teil des Codes funktioniert super! Probleme macht nur der Teil ab Anwesend...

          Kommentar


          • #20
            Da fehlt ne Klammer.

            Kommentar


            • #21
              macht leider keinen unterschied...

              #1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei 'Anwesend=IF(TRIM(SUBSTR(@raw,24,26) != "", 1, 0))' in Zeile 5

              PHP-Code:
              <?php
              LOAD DATA LOCAL INFILE 
              '//ntserver1/bde/Mobatime/JBMv5/Data/PTG/Pip-TXT.TXT' INTO TABLE mobatime
              (@raw)
              SET
              Name
              =TRIM(SUBSTR(@raw,1,23))
              Anwesend=IF(TRIM(SUBSTR(@raw,24,26) != ""10))
              ?>

              Kommentar


              • #22
                Du musst die Klammer schon auch richtig setzen
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #23
                  Wie gesagt. Blutiger Anfänger. Alles was ich mache ist pures Glück!
                  Immer denke ich - ah jetzt hab ichs begriffen - dann fehlt wieder ein Zeichen oder so

                  Kann mir jemand sagen wo die Klammer denn hinkommt?

                  So jedenfalls nicht (geht auch nicht):

                  PHP-Code:
                  LOAD DATA LOCAL INFILE '//ntserver1/bde/Mobatime/JBMv5/Data/PTG/Pip-TXT.JBM' INTO TABLE mobatime
                  (@raw)
                  SET
                  Name
                  =TRIM(SUBSTR(@raw,1,23))
                  Anwesend=IF(TRIM(SUBSTR(@raw,24,26)) != ""10

                  Kommentar


                  • #24
                    Code:
                    Anwesend = IF(
                        TRIM( SUBSTR(@raw, 24, 26) ) != "",
                        1,
                        0
                    )
                    ?
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #25
                      danke für deine mühe. aber geht irgendwie immer noch nicht. wo ist eigentich genau der unterschied zwischen deiner version und meiner letzten? machen die leerschläge was aus?

                      danke.

                      Kommentar


                      • #26
                        Ich ging von #21 aus, wo du hinten zwei Klammern drinnen hast. Die andere hab ich nicht angeschaut... Leertasten machen dazwischen nichts aus.
                        The string "()()" is not palindrom but the String "())(" is.

                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #27
                          ha, habs gefunden. war ein komma:

                          PHP-Code:
                          LOAD DATA LOCAL INFILE '//ntserver1/bde/Mobatime/JBMv5/Data/PTG/Pip-TXT.JBM' INTO TABLE mobatime
                          (@raw)
                          SET
                          Name
                          =TRIM(SUBSTR(@raw,1,23)),
                          Anwesend=IF(TRIM(SUBSTR(@raw,24,26)) != ""10
                          Wie gesagt damit werde ich einfach nicht warm. gerade 1h alles versucht dann wars ein komma. Nunja.

                          Eine Frage habe ich noch - wie mache ich, dass der code bei einer erneuten ausführung die daten in der datenbank überschreibt? das macht er jetzt nicht - ich habe die tabelle immer geleert.

                          Kommentar


                          • #28
                            Wenn du die Daten in die Tabelle schreibst und schon Daten vorhanden sind, werden sie hinten dran gehängt.
                            Wenn du die Daten immer in eine leere Tabelle schreiben willst, dann musst du die alten Daten vorher komplett entfernen, das geht mit truncate.

                            Die Tabelle löschen kannst du mit drop.

                            Da du die Anwesenheit abspeichern willst, frage ich mich warum das denn so machen willst.
                            Wenn du lediglich den Status haben willst, der Arbeitnehmer die gerade anwesend sind, dann brauchst du den Zwischenschritt über die Tabelle doch gar nicht.
                            Du kannst dann die Daten aus der Text-Datei nehmen und einfach in einer HTML-Tabelle ausgeben.

                            Kommentar


                            • #29
                              Ich möchte den Status dann in einer Mitarbeiter-Komponente anzeigen lassen. Ein roter Punkt für Abwesend und ein grüner für Anwesend.

                              Ich dachte mir einfach wenn ich die Daten in einer DB habe dann bin ich flexibler. Bei uns in der Firma weiss man nie was kommt. Heute wird das benötigt, morgen das und übermorgen wieder was anderes.
                              Wenn ich die Daten in der DB habe, habe ich doch die Grundlage für alles weitere gelegt.
                              Oder seht ihr das nicht so?

                              Edit:

                              Juhuuuuu - mein Code funktioniert jetzt einwandfrei

                              PHP-Code:
                              TRUNCATE TABLE mobatime;
                              LOAD DATA LOCAL INFILE '//ntserver1/bde/Mobatime/JBMv5/Data/PTG/Pip-TXT.JBM' INTO TABLE mobatime
                              (@raw)
                              SET
                              Name
                              =TRIM(SUBSTR(@raw,1,23)),
                              Anwesend=IF(TRIM(SUBSTR(@raw,24,26)) != ""10
                              Nun zu meinem letzten Anliegen - wie kann ich den Code nun alle 5min ausführen? Bis jetzt habe ich den Code immer im phpmyadmin im Reiter "SQL" ausgeführt...
                              Die Datenbank läuft auf xampp auf einem Server 2016 Std.

                              Offtopic: Ihr habt mir super geholfen und ich bin begeistert von diesem Board. Wir würden euch gerne einen Beitrag für den Betrieb der Seite spenden - gebt mir doch bitte ein Paypal-Konto an. Danke.

                              Kommentar


                              • #30
                                Nun zu meinem letzten Anliegen - wie kann ich den Code nun alle 5min ausführen?
                                dafür gibt's cronjobs oder daemons.

                                Kommentar

                                Lädt...
                                X