如何停止PHP while循环以重复和覆盖旧数据?
我是PHP新手,所以我希望while循环每次的结果都是不同的,因为我从CSV文件中获取数据,所以它不应该是所有的数据都是相同的 这是我的密码如何停止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]在注释掉的代码中,这个答案假设$
问题是您正在使用相同的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>