【发布时间】:2013-12-07 18:58:22
【问题描述】:
我的表单具有从 mysql 表填充的值的输入字段。在我的选择语句中,我将这些值传递给字段。该表名为person,具有唯一ID person_id 和外键academy_id。每个人都有一个状态active 或inactive 存储在字段名称person_status 中。我很难从person_status 为每个人提取值。如何在选择查询中显示每个人的状态? EXAMPLE
选择要填充的查询
<?php
$id = 15;
$db_select2 = $db_con->prepare("
SELECT a.name,
a.academy_id,
p.person_id,
p.person_status,
p.first_name
FROM academy a
LEFT JOIN person p ON a.academy_id = p.academy_id
WHERE a.academy_id = :id
");
if (!$db_select2) return false;
if (!$db_select2->execute(array(':id' => $id))) return false;
$results2 = $db_select2->fetchAll(\PDO::FETCH_ASSOC);
if (empty($results2)) return false;
$result2 = '';
$s = 1;
echo "<table>";
echo "<tbody>";
foreach ($results2 as $value2){
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>";
echo "</tr>";
$s++;
}
echo "</tbody>";
echo "</table>";
?>
想将此集成到 select 语句中:
<?php
$table_name2 = "person";
$column_name2 = "person_status";
echo "<select name=\"$column_name2\"><option>Select one</option>";
$sql1 = 'SHOW COLUMNS FROM '.$table_name2.' WHERE field="'.$column_name2.'"';
$row1 = $db_con->query($sql1)->fetch(PDO::FETCH_ASSOC);
$selected1 = '';
foreach(explode("','",substr($row1['Type'],6,-2)) as $option) {
if ($status == $option){
$selected1 = "selected=selected";
}else{
$selected1='';
}
echo "<option value='$option'" . $selected1. ">$option</option>";
}
echo "</select></br>";
?>
【问题讨论】:
-
我还建议用 mysql 和/或 sql 标记它。另外,一个挑剔的选择:如果您不使用变量替换,而只是写出文本或连接字符串,请不要使用双引号。这将告诉解析器读取该字符串的变量