2017-07-15 176 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> 

我搞掂你的代碼了一下你,嘗試了這一點。