Je dois vérifier si l'insertion de valeur dans la base de données tandis que importer fichier Excel, si elle a déjà la valeur dans la base de données alors il devrait être mis à jour.Mise à jour sur l'entrée dulipcate lors de l'importation fichier Excel - php mysql
Ci-dessous est la valeur de la table producttab dans la base
prdid | prdname
00A | prd1
00B | prd2
00C | prd3
00D | prd4
Ci-dessous est EXCEL des données du fichier
prdid | prdname
00A | prdnew
00B | prd2new
00E | prd8
00H | prd9
Donc, si je télécharger Excel fichier ci-dessus puis,
00A , 00B devrait obtenir UPDATE IN produc table ttab comme ils sont déjà présents là ... mais 00E, 00H devrait obtenir insert
* ci-dessous est ce que j'ai essayé, la valeur est en train d'insérer correctement seulement MISE À JOUR NE PAS HAPPENING, je veux dire IF..ELSE condition est parfait, seulement UPDATE ne va pas correcte *
if(isset($_POST["Upload"]))
{
$fileinfo = pathinfo($_FILES["uploadFile"]["name"]);
$filetype = $_FILES["uploadFile"]["type"];
$remark = NULL;
//Validate File Type
if(strtolower(trim($fileinfo["extension"])) != "csv")
{
$_SESSION['msg_r'] = "Please select CSV file";
header("location:importfile.php");
exit;
}
else
{
$file_path = $_FILES["uploadFile"]["tmp_name"];
}
$row = 0;
$tempFileName = time().".csv";
if (is_uploaded_file($file_path)) {
$fileCopied = copy($file_path , $tempFileName);
if (($handle = fopen($tempFileName, "r")) !== FALSE) {
fgetcsv($handle);
while (($data = fgetcsv($handle, 6000, ",")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$col[$c] = $data[$c];
}
$col1 = $col[0]; // prdid
$col2 = $col[1]; // prdname
$sql = "SELECT prdid FROM producttab WHERE prdid = '".$col1."' ";
$query = db_query($sql);
$pfetech = db_fetch($query);
// ABOVE select QUERY IS PERFECT , it taking me to if conditions
if($col1 == $pfetech['prdid']){
// only below update not happening
$sqlup = "UPDATE producttab
SET prdid = ".$pfetech['prdid'].",
prdname = ".$col2." ";
$sqlup .= " WHERE prdid = ".$pfetech['prdid']." ";
$resultsqlupdate = mysql_query($sqlup);
}else{
$query = "INSERT INTO producttab(prdid,prdname) VALUES('".$col1."','".$col2.")";
$s = mysql_query($query);
}
}
fclose($handle);
}
echo "<center>File data imported to database!!</center>";
}
}
}
Ci-dessous impression/écho de requête UPDATE,
update producttab set prdname='prdnew' WHERE prdid='00A'
update producttab set prdname='prd2new' WHERE prdid='00B'
Valeur prdname est montrée appropriée comme par fichier excel .... que la mise à jour est ne se passe pas ....
ici ... s'il vous plaît laissez-moi ce qui est question .... – user3209031
u peut utiliser la requête alors u existe peut mettre à jour ou insérer sur la base de si la décision. – Asad
u signifie dire EN CLAUSE ?? ... mais comment je peux comme la valeur de $ col1 venant comme ... 00A00B ... ensemble ... peut-on m'aider s'il vous plaît – user3209031