Как упоминалось в названии, я хотел бы знать, как заставить обработанные данные стать ссылкой на другой файл php. Например, ссылаясь на прилагаемый ниже рисунок, я хотел бы показать все города Соединенных Штатов, просто щелкнув по нему, и то же самое касается Соединенного Королевства. Я хочу сделать это, когда я нажимаю на любое из состояний, ссылка на файл php для него автоматически узнает, какое состояние я выбрал, и создаю соответствующие города.
Ниже приведен мой код:
<html>
<head><title>State</title></head>
<body>
<?php
$dbh = pg_connect("host=localhost dbname=state user=postgres");
if (!$dbh) {
die("Error in connection: " . pg_last_error());
}
$sql = "SELECT * FROM state ";
echo "<table>";
echo "<table border=\"1\" align=\"center\">";
echo "<tr>";
echo "<th>ID</th>";
echo "<th>State</th>";
echo "</tr>";
$result = pg_query($dbh, $sql);
if (!$result) {
die("Error in SQL query: " . pg_last_error());
}
while ($column = pg_fetch_array($result)) {
echo "<tr>";
echo "<td>".$column[0]."</td>";
echo "<td>".$column[1]."</td>";
echo "</tr>";
}
echo "</table>";
pg_free_result($result);
pg_close($dbh);
?>
</body>
</html>
в вашем текущем файле php:
// Replace your while statement in your code above with this...
$row_counter = 0;
while ($row = pg_fetch_array($result,$row_counter,PGSQL_ASSOC)) {
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td><a href='state.php?id=".$row['id']."'>".htmlentities($row['state'])."</a></td>";
echo "</tr>";
$row_counter++;
}
И в другом файле php, скажем, state.php, вы можете запустить что-то вроде этого:
$state_id = $_GET['state_id'];
// connect to database...
$sql = "SELECT * FROM some_table WHERE state_id = '".pg_escape_string($state_id)."'";
// run your query...
Примечание. htmlentities
предотвратят проблемы XSS, а pg_escape_string
поможет предотвратить SQL-инъекцию (но исследования, подготовленные для лучшего подхода).