子串问题/问题

时间:2011-07-13 01:17:54

标签: php loops for-loop substring

所以我有这个简单的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++;

    }
}

1 个答案:

答案 0 :(得分:2)

如果你只需要砍掉一个字符那么它应该是-1。再次检查这些字符串。

如果只有最后一张图片没有出现,那么它就会丢失或者名称不同。