user2798841 user2798841 - 1 year ago 54
PHP Question

Define variable based on concatenated PostgreSQL output in PHP

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\n";
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?

Answer Source

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\n";
    exit;
}
$name_options = ""; 
while ($row = pg_fetch_array($sql_names)){ 
    $name_options .= '<option value="' . $row[0] . '">' . $row[1] . '</option>';
}
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download