केवल एक बार विकल्प प्राप्त करें (प्रत्येक व्यक्ति के लिए इसे दोहराने की आवश्यकता नहीं है):
$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));
फिर, व्यक्तियों के ऊपर चलें
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++;
}
इसे एक SELECT-क्वेरी में बनाना अनावश्यक जटिल है (हालांकि संभव है, लेकिन आपको अपठनीय कोड देता है)।
ओह, और htmlspecialchars पर एक नज़र डालें (), यदि किसी नाम में "-character आपका HTML खराब हो जाता है