2010-12-05 70 views
0

我目前使用foreach循環顯示像一些單選按鈕,以便PHP - 循環內循環,也許?

<?php 
foreach($roles as $role){ 
    $output .= '<div class="row">'; 
    $output .= ' <input name="_'.$role->key.'" type="radio" id="'.$role->key.'" class="radio" />'; 
    $output .= ' <label for="'.$role->key.'" style="text-transform: lowercase;">'.$role->name.'</label>'; 
    $output .= '</div>'; 
} 

?>

因此多數民衆贊成相當直截了當....我下一步需要做的是有點混亂.. 。我需要採用$ role->鍵並查看它是否與另一個表中的條目相匹配,如果是,則在單選按鈕上echo'checked =「checked」'。

它需要通過$ role->鍵和$ userid進行匹配。

任何幫助將是偉大的。

回答

0

你可以把環路放在任何你想要的地方,甚至在另一個地方。

+0

當我把循環放入已經有的循環中時,它會迴應結果的第一個循環的結果。 – Chris 2010-12-05 00:29:50

+0

@Chris:你什麼意思?請告訴我們你的代碼。 – SLaks 2010-12-05 00:30:44

2

基本上你可以寫一個帶有布爾返回值的函數來查詢表中是否存在$ userid和$ role->鍵。如果它返回true否則返回false。可以說

函數是checkExist它會像這樣。

$output .= ' <input name="_'.$role->key.'" type="radio" id="'.$role->key.'" class="radio"'; 
    if(checkExist($userid, $role->key)) 
     $output .= ' checked '; 
    $output .= '/>'; 

function checkExist($userid, $key){ 
    //do a query to check if userid $key exists in table 
    //code will look like this :- 
    //$search = mysql_query("SELECT COUNT(*) FROM yourtable WHERE user='$userid' and key='$key'"); 
    //$total_records = mysql_num_rows($search); 
    //the mysql_num_rows() will return the number of records from the query... 

    if(mysql_num_rows() == 0) 
     return false; 
    else 
     return true; 
} 
0

爲checkExists($ ID),你可以寫類似:

function checkExists($id){ 
    $result = $mysql_query("SELECT ID from tablename WHERE ID=$id"); 
    return mysql_num_rows($result); 
} 

BTW。我直接在這裏寫作,你可能需要調整一些東西