2016-11-11 7 views
0

Wie kann ich innerhalb eines array in meinem Code Schleife?PHP Loop innerhalb Array

Dies ist die statische Version von meinem Skript:

$val=array(
array("value" => "Male","label" => "Male"), 
array("value" => "Female","label" => "Femal"), 
); 

my_form("Gender","select","gender",$val,"",5); 

Dann brauche ich die value und label aus der Datenbank abgerufen werden.

So maßgeschneiderte ich meine vorherigen Code:

$div=array(
while($h = mysql_fetch_array($qwery)){ 
array("value" => "$h[id]","label" => "$h[div]"),  
} 
); 

my_form("Division","select","id_div",$div,"",5); 

Wenn ich es laufen bekomme ich diese Error message:

Parse error: syntax error, unexpected 'while' (T_WHILE), expecting ')'

Kann mir jemand helfen?

ich Schleife will die Join-Daten aus meiner Datenbank in:

input type="Select"

+0

Sie können keine Schleife in einem Array – Blinkydamo

+1

Warum ist dies markiert 'Java'? –

Antwort

1

Sie keine Schleife direkt als Wert in einem Array verwenden können. Wiederholen Sie stattdessen die Schleife und fügen Sie jedes Array für jede Iteration der while-Schleife hinzu.

Mit $div[] = "value" fügen Sie diesen Wert als neues Element in diesem Array hinzu.

$div = array(); // Initialize the array 

// Loop through results 
while ($h = mysql_fetch_array($qwery)) { 
    // Add a new array for each iteration 
    $div[] = array("value" => $h['id'], 
        "label" => $h['div']); 
} 

Dies wird eine zwei dimensjonal Array erstellen, die (als Beispiel) aussehen würde wie

array(
    array(
     "value" => "Male", 
     "label" => "Male" 
    ), 
    array(
     "value" => "Female", 
     "label" => "Female" 
    ) 
); 

... die Sie dann mit einem foreach durchschauen kann zu tun, was man will .


Wenn Sie diese ausgegeben werden als Optionen in einem select-Element möchten, können Sie genau das tun direkt

<select name="sel"> 
    <?php 
    while ($row = mysql_fetch_array($qwery)) { 
     echo '<option value="'.$row['id'].'">'.$row['div'].'</option>'; 
    } 
    ?> 
</select> 
0

ein foreach kann Ihnen helfen. Es gibt Ihnen viel mehr Überblick imho.

$values = array(
    array("value" => "Male","label" => "Male"), 
    array("value" => "Female","label" => "Femal"), 
); 

<select name="Select"> 
<?php foreach ($val as $item): ?> 
    <option value="<?= $item['value']; ?>"><?= $item['label']; ?></option> 
<?php endforeach; ?> 
</select>