所以我有这个简单的PHP循环,它生成带有UPC代码的html表数据(总共有129个)和旁边的UPC条形码图像。
条形码图像与SQL中的upc编号因第一个和最后一个字符而不同。因此,如果我在SQL 123456789中,则jpg条形码列为012345678.jpg。所以我必须做一些子串工作,我在开头添加一个零字符并删除最后一个。
除了最后一张图像外,所有图像都出现了,我无法弄清楚为什么会这样,以及为什么子串看起来也不对。
我的子字符串是这样工作的,只是为了删除最后一个字符:
$upcNum = $r[upcNumber];
$imageName = substr($upcNum, 0, -2);
我认为它应该是-1,而不是-2只是为了删除最后一个字符...通过使用上面的substr方法,这就是我得到的......
$ upcNum =“123456789” substr($ upcNum,0,-2); // 12345678
无论如何这里是我的for循环代码,希望你能帮助我解决这个恼人的问题...谢谢!
$spiceType[0] = "Chiles";
$spiceType[1] = "Teas";
$spiceType[2] = "Botanicals";
$spiceType[3] = "Spices";
$spiceType[4] = "Herbs";
$counter = 1;
for($i=0; $i<count($spiceType); $i++){
$result = mysql_query("SELECT * FROM `spices` WHERE `type`='$spiceType[$i]' ORDER BY ID")or die(mysql_error());
$spiceCat = $spiceType[$i];
echo '<tr>
<td></td><td>'.$spiceCat.'</td>
<tr>';
while($r=mysql_fetch_array($result)){
$pname = $r[productName];
$qty = $r[qty];
$price = $r[price];
$upcNum = $r[upcNumber];
$imageName = substr($upcNum, 0, -2);
$imageName = "0".$imageName.".jpg";
echo'
<tr>
<td width="10">'.$counter.'</td>
<td width="200">'.$pname.'</td>
<td width="20"><p align="right">'.$qty.'</p></td>
<td width="50">'.$price.'</td>
<td width="200"><p align="center">'.$upcNum.'</p></td>
<td><img src="upcjpeg/'.$imageName.'" height="30%" width="41%"></td>
<tr>';
$counter++;
}
}
答案 0 :(得分:2)
如果你只需要砍掉一个字符那么它应该是-1。再次检查这些字符串。
如果只有最后一张图片没有出现,那么它就会丢失或者名称不同。