2017-07-15 177 views
0

我有一个foreach循环遍历在for循环中嵌套的metalname数组,foreach循环来自一个单独的数组,问题是在for循环的第一次迭代期间,为每个循环打印值,但在for循环的下一次迭代中,foreach不打印任何内容。 而对于其余的字段,没有问题,它们会打印在所有迭代中。foreach循环里面for循环只运行一次

$product = GetProduct(); 
$metal_name = get_metal(); 
$count = count($product); 
<?php for($i=0;$i<$count;$i++) { ?> 
      <div class="form-group"> 

       <label class="col-sm-2 control-label col-lg-2">Choose Metal</label> 

       <div class="col-lg-10"> 

       <select class="form-control input-lg" name="metal_name[]"> 
       <option value=''>Select Metal Name</option>  
       <?php 
        foreach ($metal_name as $r) { ?> 
        <option value="<?php echo $r['metal_id'];?>" <?php if($r['metal_id'] == $product[$i]['metal']){echo "selected='selected'";}?>><?php echo ucfirst($r['metal_name']);?></option> 
       <?php } ?> 
       </select> 

       </div> 

      </div> 
<div class="form-group"> 

      <label class="col-sm-2 col-sm-2 control-label">Product ID</label> 

      <div class="col-sm-10"> 

       <input type="text" class="form-control" name="product_id[]" value="<?php echo $product[$i]['id'];?>"> 

      </div> 

      </div> 


      <div class="form-group"> 

       <label class="col-sm-2 col-sm-2 control-label">Charges Per Gram</label> 

       <div class="col-sm-10"> 

        <input type="text" class="form-control" name="gram_price[]" value="<?php echo $product[$i]['per_gram_price'];?>"> 

       </div> 

      </div> 
<?php } ?> 

回答

0

我发现你的第四行一两件事:

<?php for($i=0;$i<$count;$i++) { ?> 

你没有在你的代码收出PHP的时候你得到你的产品和这样的上方。所以这会给你一些错误。

就循环而言,while循环对数据库工作更好。

在这里,我为你解决它。有几个错别字:

<?php 
$product = GetProduct(); 
$metal_name = get_metal(); 
$count = count($product); 
or($i=0;$i<$count;$i++) { ?> 
     <div class="form-group"> 

      <label class="col-sm-2 control-label col-lg-2">Choose Metal</label> 

      <div class="col-lg-10"> 

      <select class="form-control input-lg" name="metal_name[]"> 
      <option value=''>Select Metal Name</option> 
      <?php 
       foreach ($metal_name as $r) { 
      ?> 
      <option value=" 
       <?php 
        echo $r['metal_id']; 
        if($r['metal_id'] == $product[$i]['metal']){ 
         echo "selected='selected'"; 
         echo ucfirst($r['metal_name']); 
        } 
       ?> 
      </option> 
      </select> 

      </div> 

     </div> 
     <div class="form-group"> 

     <label class="col-sm-2 col-sm-2 control-label">Product ID</label> 

     <div class="col-sm-10"> 

      <input type="text" class="form-control" name="product_id[]" value="<?php echo $product[$i]['id'];?>"> 

     </div> 

     </div> 


     <div class="form-group"> 

      <label class="col-sm-2 col-sm-2 control-label">Charges Per Gram</label> 

      <div class="col-sm-10"> 

       <input type="text" class="form-control" name="gram_price[]" value="<?php echo $product[$i]['per_gram_price']; ?>"> 

      </div> 

     </div> 

我搞掂你的代码了一下你,尝试了这一点。