2016-12-26 6 views
0

私がやる予定は、自分のテーブルからすべてのユーザをリストし、リストに表示してから、テーブルの現在のエントリをドロップダウンリストで強調表示することです。php selectを使ってエントリを表示する方法

これは私の現在のコードです:

print "<option value=".$row2['user_id']."  if($row2['user_id']==$row['user_id']){ echo  'selected=\"selected\"';}>".$row2['fname']." ".$row2['lname']."</option>"; 

が、それは動作しません。

現時点で仕事をして私の現在のコードは次のようである:

<? 
//$results4 = mysql_query("select * from user_info order by fname"); 

$data2 = "select * from user_info order by fname"; 

$result2 = mysql_query($data2); 
print "<select name=\"timesheet_approver_1\">"; 
print "<option value=".$row['user_id']."    selected='selected'>".$row['fname']." ".$row['lname']."</option>"; 
while ($row2 = mysql_fetch_assoc($result2)) { 
print "<option value=".$row2['user_id'].">".$row2['fname']."  ".$row2['lname']."</option>"; 
} 
print "</select>"; 
?> 

これはすべての私のエントリを示していますが、一番上に記載されているテーブル内の1つを追加します。私はちょうど私がすべてのエントリーをリストし、テーブルのものを強調表示する方法についてちょっと固まった。

答えて

0

あなたが試みたように、printステートメント内にifステートメントを埋め込むことはできません。

しかし、三項演算子使用する場合は、なしで比較することができます:マニュアル

"The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE." 
から

echo ($a == $b ? 'a==b evaluates true' : 'a==b evaluates false'); 

:そうのような

print "<option value='".$row2['user_id']."' " .  ($row2['user_id']==$row['user_id'] ? 'selected="selected"' : '') . '>' .  $row2['fname']." ".$row2['lname']. "</option>"; 

ワークス

関連する問題