GNANA PRAKASH
GNANA PRAKASH

Reputation: 33

How to check for duplicate values for excel sheet values before storing in database

I'm getting data from excel sheet and storing it in database. It is storing the data successfully. I had created two tables in database, one is to import values from excel sheet & store temporarily and other is to get values from temporarily stored table,also checking for duplicate records. I can insert data in second table but please suggest me how to check duplicate records before storing in original table.

This is the code:

<?php
if(isset($_POST["submit"]))
{
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$c = 0;
$row = 1;
while(($filesop = fgetcsv($handle, 1000, ",")) !== false)
{
$row++;
if($row != 1)
{

$custid = $filesop[0];
$zone = $filesop[1];
$city = $filesop[2];
$category = $filesop[3];
$focus = $filesop[4];
$customer_type = $filesop[5];
$lead_source = $filesop[6];
$exhibition = $filesop[7];
$organization_name = $filesop[8];
$assign_to = $filesop[9];
$description = $filesop[10];
$division = $filesop[11];
$product = $filesop[12];
$grade = $filesop[13];
$potential = $filesop[14];
$firstname = $filesop[15];
$lastname = $filesop[16];
$designation = $filesop[17];
$mobile = $filesop[18];
$primary_phone = $filesop[19];
$primary_email = $filesop[20];
$address_type = $filesop[21];
$address1 = $filesop[22];
$address2 = $filesop[23];
$state = $filesop[24];
$country = $filesop[25];


$hgf = "INSERT INTO temp_const set custid='$name', zone='$zone',     city='$city', category='$category', focus='$focus',     customer_type='$customer_type', lead_source='$lead_source',     exhibition='$exhibition', organization_name='$organization_name',     assign_to='$assign_to', description='$description', division='$division',     product='$product', grade='$grade', potential='$potential',     firstname='$firstname', lastname='$lastname', designation='$designation',     mobile='$mobile', primary_phone='$primary_phone',     primary_email='$primary_email', address_type='$address_type',     address1='$address1', address2='$address2', state='$state', country='$country'     ";

$sql = mysql_query($hgf);
$c = $c + 1;
}
}

if($sql){
echo "You database has imported successfully. You have inserted ". $c     ."recoreds";
}else{
echo " Sorry! There is some problem.";
}

}
?>

Upvotes: 0

Views: 968

Answers (1)

Bernd Buffen
Bernd Buffen

Reputation: 15057

You can create a unique index on the fields where you want to check on duplication, lets say it is fieldA, fieldB and fieldC

ALTER TABLE destTable add unique key idx_abc (fieldA,fieldB,fieldC);

after this you can copy your tmp table into the destTable with the option IGNORE

INSERT IGNORE INTO destTable SELECT * FROM temp_const;

or use only the field you want.

Upvotes: 2

Related Questions