繁体   English   中英

PHP while循环不起作用

[英]PHP while loop not working

我不明白为什么插入第一行数据后我的while循环停止。 请帮忙。 我正在尝试在MySql表中上载.csv文件-如果数据已经存在,请跳过并转到第二行。

<?php
$dbhost = "xxxx";
$dbname = "xxxx";
$dbuser = "xxxx";
$dbpass = "xxxx";
mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());

fgetcsv_PHP();

function fgetcsv_PHP()
{

    if (($handle = fopen("events.csv", "r")) !== FALSE)
    {

        $length = 1000;
        $delimiter = ",";



        while ( ( $data = fgetcsv( $handle) ) !== FALSE )
        {
            // Count number of array elements in $data
            $num = count($data);
            // Print opening table row HTML tag
            $data[5]= strtolower($data[5]);
            $data[11]= "2012-06-22 10:30:40";
            $import="INSERT into candidatedb(event,rec,title,name,surname,email,phone,discip,exper,wheread,comment,stamp) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]')";


            $result = mysql_query("SELECT * from candidatedb WHERE email = '$data[5]' AND surname = '$data[4]'");
            $num_rows = mysql_num_rows ($result);
            echo $num_rows;

            if ($num_rows > 0) {

                echo "Email address: $data[5] already exist </br>"; 
            }

            else {      

                    mysql_query($import) or die(mysql_error());
                    echo "Done! $data[5] inserted<br/>";
            }
        }
        // Close the file pointed to by $handle
        fclose($handle);
    }
}

"Done!<br/> $num record uploaded" 
?>




<?php /*?>
       $import="INSERT into candidatedb(event,rec,title,name,surname,email,phone,discip,exper,wheread,comment,stamp) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]')";

       mysql_query($import) or die(mysql_error());
<?php */?>

如果尝试使用此命令进行调试,输出结果如何:

fgetcsv_PHP();

function fgetcsv_PHP() {

$length    = 1000;
$delimiter = ",";
if (($handle = fopen("events.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, $length, $delimiter)) !== FALSE)
    {
        echo "read line: ".implode($data, ';')." <br>\n";
    }
    fclose($handle);
}
}

好的,我发现了问题。 它不是.csv文件的代码。 由于某些原因,PHP函数无法正确解码Mac版Excel的.csv版本“逗号分隔值”。 但是,如果将.csv导出为“ Windows逗号分隔(.csv)”,则它就像一个超级按钮一样起作用。

在此处输入图片说明

谢谢你的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM