在php中创建查询


Creating queries in php

我必须从postgreSQL对世界数据库编写两个查询。现在我在编译程序时出现了一个错误,我不知道为什么。我正在处理的2个查询是

1. Find the district and population of all cities named Springfield. 
   Sort results from most populous to least populous. (3 results)
2. Find the name, district, and population of each city in Brazil (country code BRA). 
   Order results by city name alphabetically. (250 results)

然后我必须把结果打印在表格里。我的程序的这一部分有一些问题,我必须打印出结果。我相信我有正确的SELECT语句来获得正确的信息,我只是对如何在表中显示信息感到困惑。任何帮助都将不胜感激。这是我的代码。

<html>
<head/>
<body>
<form method = "POST" action ="<?= $_SERVER['PHP_SELF'] ?>" >
<table>
    <tr><td>Select Query</td><td><select name="query">
    <option value="1">Query 1</option>
    <option value="2">Query 2</option>
</select>
</td></tr>
</tr><td colspan="2"><input type="submit" name="execute" value="Generate" /></td></tr>
</table>
</form>
<?php
    include("public_html/secure/database.php");
    $con = ph_connect(HOST." ".DBNAME." ".USERNAME." ".PASSWORD);
    if(isset($_POST["execute"])){
    switch($_POST["query"]){
            case 1:
                    $q = "SELECT district, population FROM lab2.city WHERE (city = 'Springfield') ORDER BY population DESC";
                    $result = pg_query($q) or die('Query failed: ' . pg_last_error());
                    break;
            case 2:
                   $q = "SELECT name, district, population FROM lab2.city WHERE (country_code = 'BRA') ORDER BY name";      
                    $result = pg_query($q) or die('Query failed: ' . pg_last_error());                                      
                    break;
            }
                    echo "<table>'n";
                    while($line = pg_fetch_array($result, null, PGSQL_ASSOC)){
                            echo "'t<tr>'n";
                            foreach($line as $col_value){
                                    echo "'t't<td>$col_value</td>'n";
                            }
                    echo "'t</tr>'n";
            }
            echo "</table>'n";
            pg_free_result($result);
            pg_close($con);

?>
</body>
</html>

当我使用命令phplab2.php时,我现在遇到的错误是

以下是第一个查询的正确输出示例。

district    population
Massachusetts   152082
Missouri    151580
Illinois    111454

首先,$q变量中的字符串周围应该有引号;

示例:

$q = "Select district, population FROM lab2.city WHERE (city = 'Springfield') ORDER BY population DESC";