2013-04-28 63 views
0

我想嵌入一個下拉列表到更新頁面,它工作正常,但我有選項選定部分的問題。當顯示一個選項時,它也會將其複製到列表中。 有沒有什麼辦法可以說如果使用記錄不要再使用PHP?人口與PHP沒有重複的下拉列表

<?php 

         $sql = "SELECT TeamName, TeamID FROM tblTeam"; 
         $result = mysql_query($sql); 
         $player_id = $_GET['id']; 
         $current_team = mysql_query("SELECT 
             tblteam.TeamID, 
             tblteam.TeamName, 
             tblplayer.PlayerID, 
             tblplayer.PlayerTeam, 
             tblplayer.PlayerName 
             FROM 
             tblplayer 
             INNER JOIN tblteam ON tblplayer.PlayerTeam = tblteam.TeamID 
             WHERE PlayerID = $player_id LIMIT 1 "); 
         $my_row = mysql_fetch_array($current_team); 
         ?> 
         <select name="TeamName"> 

          <option selected value="<?php echo $my_row['TeamID']; ?>"> <?php echo $my_row['TeamName']; ?> </option> 
          <?php 
          while ($row = mysql_fetch_array($result)) { 
           $team_name= $row["TeamName"]; 
           $team_id = $row["TeamID"]; 
           echo "<option value=\"$team_id\">$team_name</option>"; 
          } 
          echo "</select>"; 
?> 

回答

2

看起來簡單,如果條件將解決你的情況:

while ($row = mysql_fetch_array($result)) { 
    $team_name= $row["TeamName"]; 
    $team_id = $row["TeamID"]; 
    if($team_id != $my_row['TeamID']){ 
     echo "<option value=\"$team_id\">$team_name</option>"; 
    } 
} 

另外,你應該總是清理$ _GET/$ _ POST參數,可以在你的榜樣:

$player_id = intval($_GET['id']); 

Intval將返回0如果給定的格式不是數字,所以你的SQL查詢是安全的,從這一刻。

+0

謝謝:)工作就像一個魅力。此外,我使用它的頁面頂部if(intval($ _ GET ['id'])== 0){ redirect_to(「index.php」);}之前的一切。 :D不知道它是否正確的方式壽。 – cevizmx 2013-04-28 01:07:05

+0

沒問題。你的驗證是足夠好:) – s3m3n 2013-04-28 01:10:15