INSERT INTO Problem

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

  • INSERT INTO Problem

    Hallo!

    ich habe eine textdatei die eingelesen wird und aus den ersten 2 zeilen eine Tabelle erstellt wird. Die restlichen zeilen sind der Inhalt die per INSERT INTO in die tab geschrieben werde sollen!

    dazu habe ich folgenden Code

    PHP-Code:
    $fp fopen("test.csv""r");

    $lines file("test.csv");
    $sl count($lines);
    //echo "<h1>Anzahl der Zeilen:$sl</h1>";

    $zeile1 fgets($fp,1024);
    $zeile2 fgets($fp,1024);
            
    //echo "Zeile1: $zeile1<br>";
            //echo "Zeile2: $zeile2<br>";
    $part1 explode(";"$zeile1);
    $part2 explode(";"$zeile2);

            
    #print_r($part1);   // Auslistung Array Part1
            #print_r($part2);  // Auslistung Array Part 2

    $sum count($part1);
    $sum2 $sum -1;
    #echo "$sum2";


    $sql "$part1[0] $part2[0]";

        for (
    $x=1$x <= $sum2$x++) {

         
    $sql=$sql.",";
         
    $sql=$sql."$part1[$x] $part2[$x]";
        }

         
    #echo "<br><b>$x: </b>$sql";

    $tab date(ss); // Scheinwert für DB Name
     # echo "$tab<br><br>";

    $query mysql_query ("CREATE TABLE `$tab` ($sql)") or die (mysql_error());


    ################## restliche Zeilen auslesen und DB füllen #####################
         
    $fields="'$part1[0]'";
     for (
    $x=1$x <= 5$x++)
     {
         
    $fields=$fields.", ";
         
    $fields=$fields."'$part1[$x]'";
     }

      for (
    $i=1$i <= $sum2$i++)
      {
            
    $zeile3fgets($fp,1024);
            
    $value explode(";"$zeile3);

            
    $lala="'$value[0]'";

      for (
    $y=1$y<=$sum2$y++)
      {
            
    $lala=$lala.", ";
            
    $lala=$lala."'$value[$y]'";
      }
           
    #echo "<b>$insert $gr</b>";
           
    $insert "INSERT INTO $tab ($fields) VALUES ($lala)";
           
    $qr mysql_query ($insert);

           
    $lala=" ";

        echo 
    "<br>$insert<br>" ;
      }

       
    #######################################################################
    echo "Tabelle:$tab";
          echo 
    "<br><br><br>";
    include 
    "../fun/time_end.php";
    ?> 
    der funktioniert recht sauber (db wird erstellt, einzelen zeilen herausgenommen aber er trägt sie nicht ein daher vermute ich das das syntax in dieser zeile nicht ganz stimmen kann.

    $insert = "INSERT INTO $tab ($fields) VALUES ($lala)";

    wo liegt mein Problem?

    ich hoffe ihr versteht es und könnte mir helfen


    echo "$insert"; gibt mir folgendes


    INSERT INTO 1313 ('marker_id', 'kmh', 'Typ', 'Beschreibung', 'gewaschener_Tunnel', 'einröhr_zweiröhrig ') VALUES ('1', '70', 'Tunnel', 'ABSC', '1', '1 ')

    INSERT INTO 1313 ('marker_id', 'kmh', 'Typ', 'Beschreibung', 'gewaschener_Tunnel', 'einröhr_zweiröhrig ') VALUES ('2', '100', 'Autobahn', 'ABSC', '2', '1 ')


    danke

  • #2
    was sagt dir denn mysql_error() ?

    Kommentar


    • #3
      wo meinst du?
      verstehte ich jetzt nicht ganz wo ich es anhängen soll?

      Kommentar


      • #4
        minimalisten-version:
        PHP-Code:
        $qr mysql_query ($insert) or die (mysql_error()); 

        Kommentar


        • #5
          Re: INSERT INTO Problem

          Original geschrieben von Silent
          INSERT INTO 1313
          merkwürdiger tabellenname ...

          nur erlaubt, wenn du ihn in backticks setzt - beim CREATE TABLE hast du das noch gemacht, hier beim INSERT aber nicht mehr.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            ah danke, ich habs immer vesucht direkt an INSERT INTO anzuhängen!

            Meldung ist:


            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 '3535 ('marker_id', 'kmh', 'Typ', 'Beschreibung', 'gewaschener_Tunnel', 'einröhr_' at line 1

            das heist`?

            Kommentar


            • #7
              Re: Re: INSERT INTO Problem

              Original geschrieben von wahsaga
              merkwürdiger tabellenname ...

              nur erlaubt, wenn du ihn in backticks setzt - beim CREATE TABLE hast du das noch gemacht, hier beim INSERT aber nicht mehr.
              das habe ich nur für testzwecke gemacht das ich immer einen neuen namen habe
              $tab = date(ss); // Scheinwert für DB Name

              danach gebe ich ihm einfach $tab als tabellenname!

              verstehst du ?


              was sind backticks?

              Kommentar


              • #8
                tabellennamen und spaltennamen immer in `backticks` einschließen.

                Kommentar


                • #9
                  Original geschrieben von penizillin
                  tabellennamen und spaltennamen immer in `backticks` einschließen.
                  nur bei mysql

                  Kommentar


                  • #10
                    hmh ok alles klar!


                    die values auch?
                    ca. so =>
                    PHP-Code:
                    INSERT INTO `4949` (`marker_id`, `kmh`, `Typ`, `Beschreibung`, `gewaschener_Tunnel`, `einröhr_zweiröhrig `) VALUES (`1`, `70`, `Tunnel`, `ABSC`, `1`, ``) 
                    ergibt aber das selbe Problem
                    Zuletzt geändert von Silent; 16.06.2005, 16:53.

                    Kommentar


                    • #11
                      tabellennamen und spaltennamen immer in `backticks` einschließen
                      die values nicht.

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

                      Kommentar


                      • #12
                        ok
                        jetzt kommt

                        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 3

                        wo ist meine zeile 3?
                        wie zählt das mysql durch?

                        Kommentar


                        • #13
                          lass dir bitte query und error ausgeben, siehe http://www.php-resource.de/forum/sho...threadid=50454
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Und du bist sicher dass du in MySql Spalten mit Umlauten bezeichnen kannst ? Ist das bei dir so konfiguriert ?
                            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                            Kommentar


                            • #15
                              so

                              jetzt mal alle fehler beseitigt und debug zeile eingebaut!

                              Column count doesn't match value count at row 1

                              INSERT INTO `3131` (`marker_id`, `kmh`, `Typ`, `Beschreibung`, `gewaschener_Tunnel `, ``) VALUES ('1', '70', 'Tunnel', 'ABSC', '1 ')

                              Kommentar

                              Lädt...
                              X