如何停止PHP while循环以重复和覆盖旧数据?

如何停止PHP while循环以重复和覆盖旧数据?,php,jquery,csv,while-loop,barcode,Php,Jquery,Csv,While Loop,Barcode,我是PHP新手,所以我希望while循环每次的结果都是不同的,因为我从CSV文件中获取数据,所以它不应该是所有的数据都是相同的 这是我的密码 问题是您正在使用相同的id创建多个svg元素。然后在JsBarcode()调用中使用这个id。通过这样做,Javascript将始终作用于具有此id的第一个元素 为了解决这个问题,我们必须创建具有唯一id的元素,然后在每个Javascript调用中使用这个唯一id 因为您有$product\u id=$csvdata[1]在注释掉的代码中,这个答案假设$

我是PHP新手,所以我希望while循环每次的结果都是不同的,因为我从CSV文件中获取数据,所以它不应该是所有的数据都是相同的

这是我的密码



问题是您正在使用相同的id创建多个
svg
元素。然后在
JsBarcode()
调用中使用这个id。通过这样做,Javascript将始终作用于具有此id的第一个元素

为了解决这个问题,我们必须创建具有唯一id的元素,然后在每个Javascript调用中使用这个唯一id

因为您有
$product\u id=$csvdata[1]
在注释掉的代码中,这个答案假设
$csvdata[1]
每行是唯一的

在您的
回音中,更改

JsBarcode(“#barcode”,“.$csvdata[1]”,{


JsBarcode(“#barcode.'$csvdata[1].”、“.$csvdata[1].”、{

问题是,您正在创建多个具有相同id的
svg
元素。然后,您在
JsBarcode()
调用中使用此单个id。通过这样做,Javascript将始终对具有此id的第一个元素进行操作

为了解决这个问题,我们必须创建具有唯一id的元素,然后在每个Javascript调用中使用这个唯一id

因为在注释掉的代码中有
$product\u id=$csvdata[1];
,所以这个答案假设
$csvdata[1]
每行是唯一的

在您的
回音中,更改

JsBarcode(“#barcode”,“.$csvdata[1]”,{


JsBarcode(“#barcode.'$csvdata[1].”,“.$csvdata[1].”,{

嘿,你能把条形码显示的地方加上代码吗?这似乎是问题所在,不是你当前的代码。@Ice76我从这个网站得到的代码:谢谢。你做过
var\u转储($csvdata)吗
在循环内部确认值是否确实是您期望的值?@PatrickQ我将
var\u dump($csvdata);
fclose($csvfile);
之前显示数组是好的,但在
fclose($csvfile);
之后显示
bool(false)
。这是正常的吗?您对
fclose()的调用
在循环之外。您想检查循环内的值,以便每次通过循环都能看到它们是什么。请将其放在
$imageData=base64\u encode….
或类似的内容之前。嘿,您能在显示条形码的位置添加代码吗?这似乎是问题所在,而不是您当前的代码。@Ice76我从这个网站上得到的代码:谢谢。你是否在循环中做了
var_dump($csvdata);
以确认这些值实际上是你期望的值?@PatrickQ我把
var_dump($csvdata);
放在
fclose($csvfile);
之前,显示数组是好的,但在
fclose($csvfile)之后
它显示
bool(false)
。这是正常的吗?您对
fclose()
的调用在循环之外。您希望检查循环内的值,以便每次通过循环都可以看到它们是什么。请将其放在
$imageData=base64\u encode….
或类似的内容之前。
<div style="margin: 1%">


            <?php
            //include 'barcode128.php';
            require 'vendor/autoload.php';

                if (($csvfile = fopen($_FILES['file']['tmp_name'], "r")) !== FALSE) {
                    while (($csvdata = fgetcsv($csvfile, 1000, ",")) !== FALSE) {

                        $colcount = count($csvdata);

                        if($colcount!=5) {
                            $error = 'Column count incorrect';
                        } else {

                            /*$product = $csvdata[0];
                            $product_id = $csvdata[1];
                            $rate = $csvdata[2];
                            $description = $csvdata[3];
                            $image = $csvdata[4];
                            $imageData = base64_encode(file_get_contents($image));

                                echo '<div class="wrapper">';
                                echo '<div class="a"><img src="data:image;base64,'.$imageData.'" width="50"/>
                                      <div><b>Item: '.$product.'</b></div>
                                      <div><svg id="barcode"><script>JsBarcode("#barcode", "'.$product_id.'",{
                                      format: "code128",width: 1,height: 35,fontOptions: "bold",marginRight:30});</script></svg></div><span><b>Price: '.$rate.' </b></span><div><span><b>Desc: </b>'.$description.'</span></div></p></span>
                                      </div></div>';
                            */

                            $imageData = base64_encode(file_get_contents($csvdata[4]));

                                echo '<div class="wrapper">';
                                echo '<div class="a"><img src="data:image;base64,'.$imageData.'" width="50"/>
                                      <div><b>Item: '.$csvdata[0].'</b></div>
                                      <div><svg id="barcode"><script>JsBarcode("#barcode", "'.$csvdata[1].'",{
                                      format: "code128",width: 1,height: 35,fontOptions: "bold",marginRight:30,font:"arial"});</script></svg></div><span><b>Price: '.$csvdata[2].' </b></span><div><span><b>Desc: </b>'.$csvdata[3].'</span></div></p></span>
                                      </div></div>';

                        }

                    }
                    fclose($csvfile);
                }
            ?>

    </div>