Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wypełnianie wybranego pola wejściowego wartością z mysql

Uzyskaj opcje tylko raz (nie musisz tego powtarzać dla każdej osoby):

$sqlStatuses = 'SHOW COLUMNS FROM '.$table_name2.' WHERE field="'.$column_name2.'"';
$rowStatuses = $db_con->query($sql1)->fetch(PDO::FETCH_ASSOC);
$personStatuses = explode("','",substr($rowStatuses['Type'],6,-2));

Następnie przejdź po osobach

foreach ($results2 as $value2) { 
    // Your code
    echo "<tr>";
    echo "<td>Name #".$s."<input type=\"hidden\" name=\"person_id_".$s."\" value='". $person_id = $value2['person_id']."' readonly=\"readonly\"/><input id=\"person_fname_".$s."\" name=\"person_fname_".$s."\" placeholder=\"Person #".$s." First Name\" type=\"text\" value='" . $value2['first_name'] ."'/></td>";

    // Added
    echo '<td><select name="person_status_'.$s.'">';
    foreach($personStatuses as $option) {
        echo '<option value="'.htmlspecialchars($option).'" ';
        if ($value2['person_status'] == $option) {
            echo 'selected="selected"';
        }
        echo '>' . htmlspecialchars($option) . '</option>';
    }
    echo '</select></td>';

    // Your code again
    echo "</tr>";
    $s++;   
}

Zbudowanie tego w jedno zapytanie SELECT jest niepotrzebnie skomplikowane (chociaż możliwe, ale daje nieczytelny kod).

Aha, i spójrz na htmlspecialchars (), jeśli nazwa zawiera „-znak, Twój HTML się spieprzy




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. podzapytanie zwraca więcej niż 1 wiersz

  2. Jak sprawić, by mysql MEMORY ENGINE przechowywał więcej danych?

  3. MySQL:zwróć zaktualizowane wiersze

  4. Jak wyszukiwać (bez uwzględniania wielkości liter) w kolumnie przy użyciu symbolu wieloznacznego LIKE?

  5. Utwórz tabelę tymczasową w instrukcji SELECT bez oddzielnej tabeli CREATE TABLE