cevizmx
cevizmx

Reputation: 391

Population a dropdown list with PHP without duplicates

I am trying to embed a drop down list to an update page, it works fine but I am having problems with option selected part. When an option is shown it also duplicates it in the list. Is there any way I can say if record is used do not use it again with 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>";
?>

Upvotes: 0

Views: 1440

Answers (1)

s3m3n
s3m3n

Reputation: 4197

It seems like simple if condition will solve the case for you:

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>";
    }
}

Additionally you should always sanitize $_GET / $_POST params, in your example:

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

Intval will return 0 if the given format is not numeric, so your sql query is safe from this moment.

Upvotes: 2

Related Questions