2017-02-21 3 views
0

Ich habe eine Datenbanktabelle, die 40 Spalten hat und eine Import.php-Datei ist da, mit der ich Daten aus CSV-Datei in die Datenbanktabelle hochladen kann. Ich habe die erste Spalte mit dem Namen TND_ID als Primärschlüssel erstellt, der für jede Zeile eindeutig ist. Zuerst habe ich Teildaten hochgeladen, die 10 Spalten Daten sind, die eine bestimmte TND_ID hat. Nach einiger Zeit möchte ich volle Daten hochladen, die 40 Spalten in derselben Zeile haben, in der Teildaten vorhanden sind, die die Import.php verwenden. Die import.php ist:importieren und ersetzen mehrere Spalten in der Datenbank für eine bestimmte Zeile mit PHP

<?php 
include('db.php'); 
include_once "auth.php"; 
if(!$link){ 
    die("Sorry! There seems to be a problem connecting to our database."); 
} 

function get_file_extension($file_name) { 
    return end(explode('.',$file_name)); 
} 

function errors($error){ 
    if (!empty($error)) 
    { 
      $i = 0; 
      while ($i < count($error)){ 
      $showError.= '<div class="msg-error">'.$error[$i].'</div>'; 
      $i ++;} 
      return $showError; 
    }// close if empty errors 
} // close function 


if (isset($_POST['upfile'])){ 
// check feilds are not empty 

if(get_file_extension($_FILES["uploaded"]["name"])!= 'csv') 
{ 
$error[] = 'Only CSV files accepted!'; 
} 

//if (!$error){ 
$tot = 0; 
$handle = fopen($_FILES["uploaded"]["tmp_name"], "r"); 
while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) { 
    for ($c=0; $c < 1; $c++) { 

      //only run if the first column if not equal to firstname 
      if($data[0] !='firstname'){ 
       mysql_query("INSERT INTO new_tnds(`TND_ID`,`Site_name_S1`,`Site_name_S2`,`Call_sign_S1`,`Idea_ID_S1`,`Call_sign_S2`,`Idea_ID_S2`,`Site_to_integrate`,`True_azimuth_S1`,`True_azimuth_S2`,`Path_length_(km)`,`TR_Antenna_diameter_(m)_S1`,`TR_Antenna_diameter_(m)_S2`,`TR_Antenna_height_(m)_S1`,`TR_Antenna_height_(m)_S2`,`#1_Channel_ID_S1`,`#1_Channel_ID_S2`,`#1_Design_frequency_S1`,`#1_Design_frequency_S2`,`Polarization`,`Radio_model_S1`,`Radio_model_S2`,`TX_power_(dBm)_S1`,`TX_power_(dBm)_S2`,`Receive_signal_(dBm)_S1`,`Receive_signal_(dBm)_S2`)VALUES('".mysql_real_escape_string($data[0])."','".mysql_real_escape_string($data[1])."','".mysql_real_escape_string($data[2])."','".mysql_real_escape_string($data[3])."','".mysql_real_escape_string($data[4])."','".mysql_real_escape_string($data[5])."','".mysql_real_escape_string($data[6])."','".mysql_real_escape_string($data[7])."','".mysql_real_escape_string($data[8])."','".mysql_real_escape_string($data[9])."','".mysql_real_escape_string($data[10])."','".mysql_real_escape_string($data[11])."','".mysql_real_escape_string($data[12])."','".mysql_real_escape_string($data[13])."','".mysql_real_escape_string($data[14])."','".mysql_real_escape_string($data[15])."','".mysql_real_escape_string($data[16])."','".mysql_real_escape_string($data[17])."','".mysql_real_escape_string($data[18])."','".mysql_real_escape_string($data[19])."','".mysql_real_escape_string($data[20])."','".mysql_real_escape_string($data[21])."','".mysql_real_escape_string($data[22])."','".mysql_real_escape_string($data[23])."','".mysql_real_escape_string($data[24])."','".mysql_real_escape_string($data[25])."')")or die(mysql_error()); 
      } 

    $tot++;} 
} 
fclose($handle); 
$content= "<div class='success' id='message'> CSV File Imported, $tot records added </div>"; 

}// end no error 
//}//close if isset upfile 
//$er = errors($error); 
$content = " 
<li align = 'center'><a href='menu.php'>GO BACK TO MENU</a></li> 
<h3 align = 'center'>Import CSV Data</h3> 
<form enctype='multipart/form-data' action='' method='post' align = 'center'> 
    File:<input name='uploaded' type='file' maxlength='20' /><input type='submit' name='upfile' value='Upload File'> 
</form>"; 

echo $content; 
?> 

Wenn ich die Daten wieder mit dem gleichen TND_ID importieren, wird es nicht nehmen, wie die Spalte ein Primärschlüssel ist.

Antwort

1

2.es Mal, wenn Sie Daten in der Datenbank in dieselbe Zeile zum 2.en Mal Gebrauch Update-Abfrage UPDATE einfügen müssendatabase_nameSpalten_Name = Wert WHERETND_ID = id_value

Verwandte Themen