2010-12-05 109 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。我直接在这里写作,你可能需要调整一些东西