[SQL allgemein] CSV Upload zu MySQL per Script ???

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

  • [SQL allgemein] CSV Upload zu MySQL per Script ???

    Nabend zusammen !!
    Ich hab ein kleines Problem. Ich möchte gerne eine csv datei per php script hochladen leider hab ich noch nicht viel ahnung mit Mysql, aber ich hab mir mal versucht nen kleines Script zu basteln :-)
    Leider zeigt er die Tabelle aus der CSV nur an und trägt sie nicht in die Datenbank ein.


    PHP-Code:

    <html>
    <head>
    <title>test</title>
    </head>
    <body>
    <?php
    $dateiname
    ="CSV_DATEI.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]);
         }

    ?>

    <table border="1">

    <?php
    for($i=0;$i<sizeof($datensaetze);$i++) {
    if(
    $datensaetze[$i] != "") {
    ?>

     <tr>
     <td nowrap><? echo $datenfeld[$i][0] ?></td>
     <td nowrap><? echo $datenfeld[$i][1] ?></td>
     <td nowrap><? echo $datenfeld[$i][2] ?></td>
     <td nowrap><? echo $datenfeld[$i][3] ?></td>
     <td nowrap><? echo $datenfeld[$i][4] ?></td>
     <td nowrap><? echo $datenfeld[$i][5] ?></td>
     <td nowrap><? echo $datenfeld[$i][6] ?></td>
      <td nowrap><? echo $datenfeld[$i][7] ?></td>
       <td nowrap><? echo $datenfeld[$i][8] ?></td>
        <td nowrap><? echo $datenfeld[$i][9] ?></td>
         <td nowrap><? echo $datenfeld[$i][10] ?></td>
          <td nowrap><? echo $datenfeld[$i][11] ?></td>
     </tr>

    <?php
     
    }
     }
    ?>

    </table>

    <?

    $connect = mysql_connect("","","") or die("Verbindung zum Server nicht hergestellt!<br>");
    $selectDB = mysql_select_db("") or die("Konnte die Datenbank <b>$dbName</b> nicht auswählen");



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


    $eintrag = "INSERT INTO Kilometer (ID, Name, Sonntags, Werktags, Gesamt, Fahrten, 1ner, 2er, 3er, 4er, 8er) 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]."')";
    $eintragen = mysql_query($eintrag);

     }

    mysql_close();
    ?>
    Danke für Hilfe

    Viele Grüße Smurfy

  • #2
    PHP-Code:
    $eintragen mysql_query($eintrag) or die(mysql_error()); 
    gibts da ne fehlermeldung, wenn ja, poste die mal bitte.
    Kissolino.com

    Kommentar


    • #3
      Danke für die schneller antwort !!
      Ich hab das dan mal genau so umgeändert !!

      PHP-Code:
      for($i=0;$i<sizeof($datensaetze);$i++) {
           
      $datenfeld[$i]=explode(";",$datensaetze[$i]);


      $eintrag "INSERT INTO Kilometer (ID, Name, Sonntags, Werktags, Gesamt, Fahrten, 1ner, 2er, 3er, 4er, 8er) 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]."')";
      $eintragen mysql_query($eintrag) or die(mysql_error());

       } 

      und bekomme dann diese Fehlermeldung "Column count doesn't match value count at row 1"


      Viele Grüße Smurfy

      Kommentar


      • #4
        Original geschrieben von Smurfy
        bekomme dann diese Fehlermeldung "Column count doesn't match value count at row 1"


        Viele Grüße Smurfy
        und?

        problem is jetzt gelöst oder?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          d.h. dass die anzahl der angegebenen spalten nicht mit der anzahl der angebenen values übereinstimmt.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            @mrhappiness
            Ne das Problem ist noch nicht gelöst ich hatte nicht vor nur eine Fehlermeldung zu erhalten :-)

            @Wurzel
            Ja thx ich hab den Value 0 nicht berücksichtigt :-)
            Aber jetzt bekomm ich eine andere Meldung :-(

            "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 'Groten','6','58','64','9','0','0','0','64','0 ')' at line 1"

            Gruß Smurfy

            Kommentar


            • #7
              @Smurfy

              ich wollte damit zum ausdruck bringen, dass ich dir das lesen und verstehen dieser meldung ebenso zutraue wie das einleiten vongegenmaßnahmen

              wie sieht das statement denn jetzt aus?
              gib es mal mit echo aus
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                @mrhappiness
                sry habs falsch verstanden.
                Bekomm jetzt zwar diese Fehlermeldung in der php. Aber die CSV
                wurde jetzt komplett in die Datenbank geschrieben ??
                Was hat denn dann die Meldung zu sagen:

                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 'Groten','6','58','64','9','0','0','0','64','0 ')' at line 1

                Wobei das "'Groten','6','58','64','9','0','0','0','64','0 '" noch nicht einmal in der csv steht ??

                Viele Grüße Smurfy

                Kommentar


                • #9
                  Original geschrieben von Smurfy
                  Wobei das "'Groten','6','58','64','9','0','0','0','64','0 '" noch nicht einmal in der csv steht ??
                  das hat dein script sich ausgedacht um dich zu ärgern

                  das muss da drinstehen. wo soll es denn sonst herkommen?

                  die meldung bedeutet, das sql nicht ganz verstanden hat, was du von ihm willst
                  h.a.n.d.
                  Schmalle

                  http://impressed.by
                  http://blog.schmalenberger.it



                  Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                  ... nur ohne :-)

                  Kommentar


                  • #10
                    hehe thx @schmalle
                    Ich hab den Fehler :-)
                    In der CSV stehen namen und da heisst jemand Andre'
                    natürlich hört er danach auf und fragt sich was der rest soll.

                    Danke für eure Hilfe !!

                    Viele Grüße Smurfy

                    Kommentar


                    • #11
                      Nabend! nochmal
                      Hab noch nen kleinen Fehler bin auch schon ne halbe Stunde am suchen :-)
                      Bin anfänger!! Wie gesagt !!
                      Er schreibt die Tabelle jetzt vollständig in die Datenbank aber
                      Vor den ersten wert und nach den letzten wert setzt der anführungsstriche.
                      Es muss irgendwas mit diesem Teil zu tun haben:
                      PHP-Code:

                      <?php
                      $dateiname
                      ="philipp1.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]);
                           }

                      ?>

                      <table border="2">

                      <?php
                      for($i=0;$i<sizeof($datensaetze);$i++) {
                      if(
                      $datensaetze[$i] != "") {
                      ?>

                       <tr>
                       <td nowrap><? echo $datenfeld[$i][0] ?></td>
                       <td nowrap><? echo $datenfeld[$i][1] ?></td>
                       <td nowrap><? echo $datenfeld[$i][2] ?></td>
                       <td nowrap><? echo $datenfeld[$i][3] ?></td>
                       <td nowrap><? echo $datenfeld[$i][4] ?></td>
                       <td nowrap><? echo $datenfeld[$i][5] ?></td>
                       <td nowrap><? echo $datenfeld[$i][6] ?></td>
                       <td nowrap><? echo $datenfeld[$i][7] ?></td>
                       <td nowrap><? echo $datenfeld[$i][8] ?></td>
                       <td nowrap><? echo $datenfeld[$i][9] ?></td>
                       <td nowrap><? echo $datenfeld[$i][10] ?></td>
                       </tr>

                      <?php
                       
                      }
                       }
                      ?>

                      </table>
                       
                      <?
                      In meiner Tabelle steht:
                      "8|Hans Wurst|6|404|410|43|5|0|20|323|62"

                      Ich mnöchte das aber ohne anfürhrungstriche:-)

                      Viele Grüße Smurfy

                      Kommentar


                      • #12
                        dann shcmeiß die anführungszeichen mit str_replace raus, am besten in der for-schleife
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Kannst du das bitte auch für anfänger erklären !!
                          Versuch nähmlich schon lange damit aber ich weiss nicht wo ich des hinsetzen soll ???



                          Gruß Smurfy

                          Kommentar


                          • #14
                            Original geschrieben von mrhappiness
                            am besten in der for-schleife
                            damit mein ich diese hier:
                            Original geschrieben von Smurfy
                            PHP-Code:
                            for($i=0;$i<sizeof($datensaetze);$i++) {

                                 
                            $datenfeld[$i]=explode(";",$datensaetze[$i]);

                                 } 
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              thx für die schnelle antwort aber wohin muss des und mit welcher variabel ??
                              Ich bin doch der totale anfänger ;-)

                              Kommentar

                              Lädt...
                              X