1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

CSV Datei bereitet Probleme

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von fablei, 11.01.07.

  1. fablei

    fablei Gast

    Hallo,
    ich habe eine CSV Datei aus Excel mit etwa 3000 Einträgen.

    Ich möchte diese mit PHP in meine Datenbank übertragen.
    Leider ist die Excel Tabelle nicht gut gepflegt worden und es haben sich Fehler (auch in die CSV ) in die Datei geschlichen.

    Ich brauche nun eine Möglichkeit wie ich on-the-fly sozusagen die Fehler in der CSV korrigieren kann und dann gleich weiter in die DB übertragen kann. Es sollte die Möglichkeit geben, das man die falsch eingetragenen User per SELECT austausche kann und erst dann der Datensatz in die DB geschrieben wird. ICh komm da rein logisch nicht weiter, da ich nicht weiß, wie ich das ARRAY das in $Daten steht so ändern kann das bei jedem Durchlauf zuerst $Daten[0] also der Username der an dieser Stelle steht und dann - nach SELECT Auswahl und quasi Korrektur- das ganze ARRAY in die DB geschrieben wird.

    Hier mal das Beispiel zu Verdeutlichung:

    Code:
    $Dateizeiger = fopen("alle.csv", "r");
    $k=0;
    
    echo '
    <form action="import.php" method="POST" name="f">
    
    while(($Daten = fgetcsv($Dateizeiger, 1000, ";" ,'"')) !== FALSE)
        {
            $AnzahlDerFelder = count($Daten);
            
            $string = "Select un FROM user WHERE un = '$Daten[0]' LIMIT 1";
            $quer = mysql_query($string);
             $res = mysql_num_rows($quer);
             
             if(isset($_POST['user_falsch']))
                {
                    echo $_POST['user'];
                    #echo $Daten[0];
                }
             
             if($res == 0)
             {
            #echo '<pre>';
            #print_r($Daten);
            #echo '</pre>';
            echo 'Falscher User: '.$Daten[0];
            echo '<br>Korrigieren mit: ';
            
            $sql= "SELECT id,un FROM user ORDER by un ASC LIMIT 90";
            $user = mysql_query($sql);
            
            echo'
                <select name ="user">
                    <option>Bitte richtigen User waehlen</option>';
                        WHILE($resultset = mysql_fetch_array($user))
                            {
                                echo '<option value="'.$resultset['un'].'">'.$resultset['un'].'</option>';
                            }
            echo'</select>';
            echo '<input type="submit" value="weiter" name="user_falsch">';
            $k++;
            break;
             }
            
        }
    echo '<br>Zahl mit leeren Usern:'.$k;
    echo '</form>';
    
    Vielen Dank,
    Fabian
     

Diese Seite empfehlen