• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

CSV Datei bereitet Probleme

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