2011-01-23 4 views
-1

양식에서 데이터를 얻으면 아래 코드를 사용하여 중복을 검사 할 수 있지만 CSV 파일을 가져올 때 어떻게 중복을 검사합니까?PHP에서 CSV를 가져올 때 중복을 확인하십시오.

select (=)는 하나의 값에 대해서만 수행하지만 25 개의 행이 있으면 Excel에서 어떻게 수행합니까?

$check = mysql_query("SELECT * FROM table WHERE x= '$Thd'"); 

if ($x) 
{ 
    if(mysql_num_rows($check) != 0) 
    { 
    header('location:nw.php?msg=cat exists'); 
    } 
    else 
    { 

    )"; 

미리 감사드립니다. 어떤 도움을 주셔서 감사합니다.

답변

0

mysql_query는 각 데이터 라인을 얻기 위해 반복 될 수있는 리소스 객체를 반환합니다. 좋은 토론은 the resource documentation의 예를 참조하십시오.

+0

삽입하기 전에 확인해야합니다. – fvgf

+0

$ linemysql = implode (" ','", $ linearray); $ newlinemysql = str_replace ('\ n', ", $ linemysql); 경우의 ($ addauto) { 스위치 ($의 databasetable) { 경우 ("DocumentID") $ duplicatevals = "DocumentID = VALUES (DocumentID)"; 휴식; } $ 질의 = "("$의 newlinemysql ') $ duplicatevals "DUPLICATE KEY UPDATE ON 를 $ databasetable 값 삽입"; } 다른 { $ 쿼리 = "$ databasetable 값으로 $ duplicatevals DUPLICATE KEY UPDATE ON ('$의 linemysql') 삽입"을; } 위의 스크립트를 사용했지만 오류가 발생했습니다 $ duplicatevals = "DocumentID = VALUES (DocumentID)"; 예기치 = – fvgf

1

당신은 당신은 CSV 파일에서 데이터 당기는하고,이

Fgetcv

+0

+1, OP의 문제를 실제로 해결하는 가장 현명한 대답입니다. –

0

좋아을 확인 후 배열에 도착 참조, 그렇게 할 수 있습니다. 나는 보통 PHP의 까다로운 fgetcsv()보다는 fopen/fgets를 사용하지만, 중복 값을 확인하기 위해해야 ​​할 일은 위에있는 것과 비슷하다. 고유 한 필드가 무엇인지 알았다면 예제를 제공하는 것이 더 쉬울 것이지만,

$check = mysql_query("SELECT `x` FROM `table` WHERE `x` = '$uniquecsvfield' LIMIT 1"); 
//LIMIT 1 will stop it from searching for more, since you only need to know if one result exists. 
//If you don't do LIMIT 1 then it will go through the whole table even if it finds one. 
//Can also do 'WHERE x = $uniquecsvfield1 AND y = $uniquecsvfield2, whatever, depending on how 
//many Fields need to be unique 

if(mysql_num_rows($check) == 0) //If no rows are returned 
{ 
    mysql_query("INSERT INTO `table` VALUES blah blah blah"); //Insert 
} 
//Since you're gonna be processing the whole file, probably don't need to do anything if there is a 
//duplicate, it just won't insert it. 
//You could do an else that echo out "Duplicate found" or whatever 
관련 문제