2017-05-15 16 views
6

में पहली कुंजी लौटें मुझे फोरच में सरणी की पहली कुंजी लौटने में समस्या है। मैं $ कुंजी वापस कर सकता हूं लेकिन मैं केवल पहली $ कुंजी लौटने पर नहीं समझ सकता।foreach

<td> 
    <div align="center"> 
     <span class="formlist"> 
      <select id="plant" name="plant[]" class="form-control" multiple="multiple"> 
      <?php 
       $query_plant = "SELECT * FROM plant WHERE plant_enable=1 ORDER BY plant_name"; 
       $rs_plant = DB_Query($query_plant); 
       while ($row_plant = DB_FetchRow($rs_plant)) { 
        $plant.='<option name='.$row_plant["plant_shortname"].' value='.$row_plant["plant_id"].'>' .$row_plant["plant_name"].' ['.$row_plant["plant_id"].']</option>'; 
       } 
       mysql_free_result($rs_plant); 
       echo $plant; 
      ?> 
      </select> 
     </span> 
    </div> 
</td> 

if(isset($_POST['plant'])) {   
    $checkbox1 = $_POST['plant']; 
    $chk=""; 
    $stf_sql = "SELECT * FROM test_plant WHERE staff_id = '".$STAFF_ID."'"; 
    $stf_res = DB_Query($stf_sql);  
    if(DB_RowsReturned($stf_res) > 0) { 
     $del_sql = "DELETE FROM test_plant WHERE staff_id = '".$STAFF_ID."'"; 
     $del_res = DB_Query($del_sql); 
    }  
    foreach($checkbox1 as $chk1) 
    { 
     $in_ch="insert into test_plant(staff_id, plant_name, submit_dt) values ('$STAFF_ID','$chk1', Now())"; 
     $in_res = DB_Query($in_ch);     
     $abc = mysql_query("SELECT * FROM test_plant");  
     while($abc_row = mysql_fetch_assoc($abc)) { 
      foreach($abc_row as $key => $value) { 
       echo $key; //return first key here 
      }   
     }  
    }  
} else { 
    echo "OK"; 
} 

मैं $key[0] लौटने की कोशिश की है, लेकिन यह केवल पहला अक्षर देता है। मैं 'p_id'

My table structure :

+0

अपनी तस्वीर से अनुमान लगा, तो आप स्तंभ नाम वापस जाने के लिए चाहते हो ?? – user2860957

+0

@ उपयोगकर्ता 2860957 हां। बीटीडब्ल्यू ने अपना कोड संपादित किया है। – NFSJ

+0

इस लाइन का उपयोग करें, आपको संकेत 'echo mysql_field_name ($ abc, 0)' मिलेगा, फ़ोरैच लूप – user2860957

उत्तर

4

इस तरह, वापस करना चाहते

$keys = array_keys($checkbox1); 
print_r($keys); // for all keys 
echo $keys[0]; // It will echo first key of the array. 
+0

मैंने अपना कोड वैसे भी संपादित किया है। और मैंने आपके कोड को नए कोड में डालने का प्रयास किया है लेकिन यह ऐरे ([0] => 0) 0 – NFSJ

+0

'print_r ($ checkbox1) के लिए आउटपुट क्या है;' – Naga

+0

मैंने आपके द्वारा सुझाए गए तरीके को संपादित किया है और यह भी मदद की! बहुत बहुत धन्यवाद: डी – NFSJ

0

आप आंतरिक सरणी सूचक रीसेट कर सकता है और उसके बाद वर्तमान तत्व की कुंजी प्राप्त:

reset($checkbox1); 
echo key($checkbox1); 

(लूप के दौरान इसे अपने बाहरीतम के बाहर रखें)।

या आप भी सभी सरणी कुंजी मिल सकता है, और उसके बाद वर्तमान कुंजी हड़पने:

echo current(array_keys($checkbox1));