Datensätze zuviel

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

  • Datensätze zuviel

    Ich importiere aus einer CSV-Datei mehrere Datensätze.
    Dies mache ich folgendermassen:
    PHP-Code:
    <?php

    $datei
    =fopen($db_File,"r");
    $daten=fread($datei,filesize($db_File));
    fclose($datei);
    $datensaetze=explode("\n",$daten);


    mysql_connect($db_Hostname$db_UserName$db_Password) || die("Can't Connect to Database: ".mysql_error());
    mysql_select_db($db_Database) || die("FEHLER ".mysql_error());
    for(
    $i=0;$i<sizeof($datensaetze);$i++) 
    {
        
    $datenfeld[$i]=explode(";",$datensaetze[$i]);
        
    $eintrag "INSERT INTO partner_clean (datum, nummer, k_status, id_kunde, programm, typ, betrag) 
    VALUES('"
    .$datenfeld[$i][0]."','".$datenfeld[$i][1]."','".$datenfeld[$i][2]."','".$datenfeld[$i][3]."',
    '"
    .$datenfeld[$i][4]."','".$datenfeld[$i][5]."','".$datenfeld[$i][8]."')";
        
    $eintragen mysql_query($eintrag);
    }
    if (
    mysql_query ($eintrag)) 
        {
            
    $res mysql_query ("INSERT INTO partner_clean (partner_id) VALUES('affilinet') WHERE k_status='Bestätigung'");
            
    #$res = mysql_query ("UPDATE $db_Table SET sts='bestaetigt' where sts='Best„tigun'");
            
    echo  "&Uuml;bertragung erfolgreich";
        }
        else 
        {
            echo  
    "&Uuml;bertragung fehlgeschlagen. Grund: "mysql_error ();
        }
    mysql_close();
    ?>
    Als Resultat erhalte ich folgende Tabelle
    ID Programm Typ Betrag Datum Nummer Status Partner
    0 0.00 0
    0 0.00 0
    12 InterFriendship Ost-West Singlecommunity L 0.00 "17.02.200 118889960 Bestätigung
    12 InterFriendship Ost-West Singlecommunity L 0.00 "12.02.200 118889960 Vormerkung
    0 Programm Lead/Sal 0.00 "Datum 0 Status

    Die erste Zeile sind die Spaltennamen.
    In der Tabelle gibt es jedoch nur zwei Datensätze, warum bekomme ich aber 5 Datensätze?

    Gruß Stoner






    Zuletzt geändert von Stoner; 02.03.2004, 09:52.

  • #2
    wie sieht denn die csv-datei aus?

    btw: umbrech bitte deinen code ... keiner hat lust, ewig nach rechts zu scrollen.
    Kissolino.com

    Kommentar


    • #3
      moin, moin

      ich hoffe nun kann mas besser lesen

      meine csv sieht folgendermassen aus:

      Datum;Nummer;Status;SubPartnerID;Programm;Lead/Sale;Netto-Umsatz;Provisionswert;Auszahlung
      12.02.2004;118889960;Vormerkung;12;InterFriendship Ost-West Singlecommunity;L;12;0 75;0
      17.02.2004;118889960;Bestätigung;12;InterFriendship Ost-West Singlecommunity;L;12;0 75;0

      Gruß Stoner

      Kommentar


      • #4
        hmm,

        was ich nicht verstehe:
        PHP-Code:
        $eintrag "INSERT INTO partner_clean (datum, nummer, k_status, id_kunde, programm, typ, betrag) ...";
        $eintragen mysql_query($eintrag);
        if (
        mysql_query ($eintrag)) 
        $res mysql_query ("INSERT INTO partner_clean (partner_id) VALUES('affilinet') WHERE k_status='Bestätigung'"); 
        zuerst nen insert - ok.
        dann nochmal das insert?
        und dann nochn insert? gibts da ne WHERE? welchen sinn erfüllt die?
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          das habe ich schon verändert und es an den ersten insert angehängt.
          Am Ende musste noch eingefügt werden, um welche csv es sich handelt

          Gruß Stoner

          Kommentar


          • #6
            eigentlich müsstest du imho 6 einträge bekommen ...
            1. sendest du die kopfzeile in die tabelle
            2. führst du die query 2x aus
            PHP-Code:
                .... $eintragen mysql_query($eintrag);
            }
            if (
            mysql_query ($eintrag))
            ..... 
            3. solltest du file() benutzen ... geht einfacher und schneller als fopen()
            Kissolino.com

            Kommentar


            • #7
              ausserdem habe ich $i=1 gesetzt und somit das Ergebnis auf 4 Datensätze geschrumpft ;-)

              Gruß Stoner

              Kommentar


              • #8
                problem damit gelöst ... oder sendest du die query immer noch doppelt?
                Kissolino.com

                Kommentar


                • #9
                  also, ich hab jetzt 3 Datensätze, der erste trägt überall '0' ein
                  mein script sieht nun mittlerweile so aus:
                  PHP-Code:
                  <?php

                  $datei
                  =fopen($db_File,"r");
                  $daten=fread($datei,filesize($db_File));
                  fclose($datei);
                  $datensaetze=explode("\n",$daten);


                  mysql_connect($db_Hostname$db_UserName$db_Password) || die("Can't Connect to Database: ".mysql_error());
                  mysql_select_db($db_Database) || die("FEHLER ".mysql_error());
                  for(
                  $i=1;$i<sizeof($datensaetze);$i++) 
                  {
                      
                  $datenfeld[$i]=explode(";",$datensaetze[$i]);
                      
                  $eintrag "INSERT INTO partner_clean (datum, nummer, k_status, id_kunde, programm, typ, betrag, partner_id) 
                  VALUES('"
                  .$datenfeld[$i][0]."','".$datenfeld[$i][1]."','".$datenfeld[$i][2]."',
                  '"
                  .$datenfeld[$i][3]."','".$datenfeld[$i][4]."','".$datenfeld[$i][5]."',
                  '"
                  .$datenfeld[$i][8]."','affilinet')";
                      
                  $eintragen mysql_query($eintrag);
                      
                  }

                  mysql_close();
                  ?>
                  und die Tabelle:
                  ID Programm Typ Betrag Datum Nummer Status Partner
                  0 0.00 0 affilinet
                  12 InterFriendship Ost-West Singlecommunity L 0.00 "12.02.200 118889960 Vormerkung affilinet
                  12 InterFriendship Ost-West Singlecommunity L 0.00 "17.02.200 118889960 Bestätigung affilinet

                  Ein weiteres Problem sind dann die Anführungszeichen beim Datum
                  Gruß Stoner

                  Kommentar


                  • #10
                    lass dir mal $eintrag ausgeben (ohne insert in die db) und schau dir mal an,
                    was drin stehr und warum.
                    Kissolino.com

                    Kommentar

                    Lädt...
                    X