基于PHP中的连接PostgreSQL输出定义变量

I am trying to generate a PHP variable that can be used to generate select options on a website.

The php is currently as follows:

$sql_names = pg_query($dbconn, "SELECT id, name external_name FROM names);
    if (!$sql_names) {
      echo "Er
";
      exit;
    }

    while ($row = pg_fetch_array($sql_names)) foreach($row as $a => $b){ $name_options = '<option value="' . $row[0] . '">' . $row[1] . '</option>';}

This is then called later on as follows:

<select name="NAMES[]">
        <?php echo $name_options; ?>
</select>

However it only returns 1 option when there should be 6.

Any suggestions?

the problem is that you are not append the results in the $name_options variable. This way you are returning only the last row. Try this:

$sql_names = pg_query($dbconn, "SELECT id, name external_name FROM names);
if (!$sql_names) {
    echo "Er
";
    exit;
}
$name_options = ""; 
while ($row = pg_fetch_array($sql_names)){ 
    $name_options .= '<option value="' . $row[0] . '">' . $row[1] . '</option>';
}