Я должен написать 2 запроса от 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>
Ошибка, которую я получаю сейчас, когда использую команду php lab2.php
Вот пример правильного вывода для первого запроса.
district population
Massachusetts 152082
Missouri 151580
Illinois 111454
Для начала у вас должны быть кавычки вокруг строк в переменных $ q;
Пример:
$q = "Select district, population FROM lab2.city WHERE (city = 'Springfield') ORDER BY population DESC";
Других решений пока нет …