Как распечатать список с выбранным значением из базы данных?

#php #mysql #html #forms #select

#php #mysql #HTML #формы #выберите

Вопрос:

Я пытаюсь распечатать выпадающий список с выбранным значением из базы данных. результат 3 — я выбираю значение ‘название компании’ из базы данных, которые находятся в той же строке, что и $ id2. Мне нужно, чтобы это значение было выбрано. результат 2 — я выбираю названия всех компаний.

 result3 = mysql_query("SELECT company.company_id,customer.company_id, customer.customer_id, company.name 
FROM company INNER JOIN customer ON customer.company_id=company.company_id  WHERE customer_id='$id2'") or die(mysql_error());
$row3 = mysql_fetch_assoc($result3);
$result2 = mysql_query("SELECT company_id, name FROM company") or die(mysql_error());
  if(mysql_num_rows($result2) > 0)
  {
    while($row2 = mysql_fetch_assoc($result2))
    {
    echo'<option selected="'.$row3['name'].'" value="'.$row2['company_id'].'">'.$row2['name'].'</option>';
    }
  }
  

Проблема с моим кодом заключается в том, что каждый раз выбранное значение является последним в списке.

Я посмотрел на свой исходный код, и там все в порядке.

Вот исходный код, и именно таким мне и нужно было быть. (но мой код возвращает выбранное значение как Facebook — последнее в списке)

 <select name="operation">
<option selected="Google" value="1">Microsoft</option>
<option selected="Google" value="2">IBM</option>
<option selected="Google" value="3">Google</option>
<option selected="Google" value="4">Lexy</option>
<option selected="Google" value="5">Facebook</option>   
</select>
  

Ответ №1:

Выбранный атрибут должен применяться только к одному параметру в списке.

 <option selected="selected">
  

должно привести к выбору этого единственного параметра.

Итак, в вашем цикле while вам нужен оператор if, что-то вроде этого:

  while($row2 = mysql_fetch_assoc($result2))
 {
     if($row2['name'] == $row3['name']){
          $selected = "selected='selected'";
     }else{
          $selected = "";
     }
     echo'<option ' . $selected . ' value="'.$row2['company_id'].'">'.$row2['name'].'</option>';
}
  

Таким образом, будет выбрано только то значение, которое вы хотите выбрать.