html — импорт и замена нескольких столбцов в базе данных для конкретной строки с использованием переполнения стека

У меня есть таблица базы данных, которая имеет 40 столбцов и файл import.php, с помощью которого я могу загрузить данные из файла CSV в таблицу базы данных. Я сделал первый столбец, который назван как TND_ID в качестве первичного ключа, который уникален для каждой строки. Сначала я загрузил частичные данные, которые представляют собой данные из 10 столбцов, которые имеют определенный TND_ID. Через некоторое время я хочу загрузить полные данные с 40 столбцами в одну строку с частичными данными с помощью import.php.
Import.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 functionif (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;
?>

Если я снова импортирую данные с тем же TND_ID, это не займет, так как этот столбец является первичным ключом.

0

Решение

2-й раз, когда вам нужно вставить данные в базе данных в ту же строку, 2-й раз использовать запрос на обновление ОБНОВИТЬ database_name column_name = значение ГДЕ TND_ID = id_value

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector