Php - Sayfalar Arası Veri Sorgulama
iki .php sayfası arasında ilk sayfadan ikinciye veri göndererek veritabanından sorgulama yapıcaz.
öncelikle 2 tane .php sayfası oluşturuyoruz.
birinin adı sayfa1.php
ikincisinin adı ise sayfa2.php dir.
elimde mahalle, sokak, kapi olmak üzere 3 tablo ve içinde birincil anahtar olarak tanımlanmış binlerce veri var.
Bu yapının gelişmişi daha sonra Şehrim360 Projesi ile başka bir Bilgi Yönetim Sisteminin enterasyonu esnasında kullanılacaktır.
Ben hazırladığım basit ön çalışmayı kodlarıyla bloğumda paylaşmak istedim.
Sayfa1.php dosyası aşşağıdaki gibidir.
Sayfa1.php nin kodları
<html>
<head>
<title>Sayfa1</title>
<meta http-equiv="Content Type" content="text/html"; charset=UTF-8">
<?//Türkçe Karekter sıkıntısı olmasın diye meta tanımlayıp charsetimizi UTF-8 yapıyoruz?>
</head>
<body>
<form name="metinkutusu" action="sayfa2.php?uavt_mah=<?$_POST[mahalle];?>?uavt_yol=<?$_POST[yol];?>?uavt_kapi=<?$_POST[kapi];?>">
<?//Form tasarlayıp gelen verileri diğer sayfaya link şeklinde gönderiyoruz?>
Mahalle Uavt:
<input type="text" name="mahalle"><br><br>
Yol Uavt:
<input type="text" name="yol"><br><br>
Kapi Uavt:
<input type="text" name="kapi"><br><br>
<input type="submit" value="Gönder">
</form>
<?//Basit Linkle Veri Gönderme
//<a href="sayfa2.php?uavt_mah=?uavt_yol=?uavt_kapi=">Sorgu Gönder</a>
?>
</body>
</html>
Sayfa1 de açılış ekranımızı hazırladık istediğimiz verileri Sayfa2 ye link olarak Post ettik.
---------------------------------------------------------------------------------
Şimdi Sayfa2 deki işlemlerimize gelelim.
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>Sayfa2</title>
<meta http-equiv="Content Type" content="text/html"; charset=UTF-8">
<meta http-equiv=content-type content=text/html;charset=UTF-8>
<meta http-equiv=content-type content=text/html;charset=windows-1254>
<meta http-equiv=content-type content=text/html;charset=x-mac-turkish>
</head>
<body>
<?//Sayfa1 den gönderilen uavt kodlarını Get methoduyla çekip ekrana getirtiyorum.?>
Mahalle Uavt_Kodu :
<?
$uavt_mahalle=$_GET[mahalle];
echo $uavt_mahalle;
?><br>
Yol Uavt_Kodu :
<?
$uavt_yol=$_GET[yol];
echo $uavt_yol;
?><br>
Kapi Uavt_Kodu :
<?
$uavt_kapi=$_GET[kapi];
echo $uavt_kapi;
?><br><br>
<?//Veritabanı bağlantılarımızı yapıp sorgulamaları gerçekleştiriyoruz.?>
<?
//Veritabanına bağlan
$dbconn = pg_connect("host=localhost dbname=xxx user=xxx password=xxx")
or die('Bağlantı Gerçekleştirilemedi: ' . pg_last_error());
if(!empty($uavt_mahalle))
{
// Mahalle Sql Sorgumuz
$query_mah = "SELECT adi_numarasi FROM mahalle where uavt_kod=$uavt_mahalle";
$result_mah = pg_query($query_mah) or die('Sorgulama Yapılamadı: ' . pg_last_error());
echo "Sorgu: $query_mah";
// Mahalle Html tablonun içinde gelen kolonları yazdırma
echo "<table>";
while ($mahallesonuc = pg_fetch_array($result_mah, null, PGSQL_ASSOC)) {
echo "<tr>";
foreach ($mahallesonuc as $mahallebilgi) {
echo "<td>Mahalle : $mahallebilgi</td>";
}//foreach parantez
echo "</tr>";
} //while parantex
echo "</table>";
}//if parantez
// Yol Sql Sorgumuz
if(!empty($uavt_yol))
{
$query_yol = "SELECT yol_adi FROM yol where nc_yol_id=$uavt_yol";
$result_yol = pg_query($query_yol) or die('Sorgulama Yapılamadı: ' . pg_last_error());
echo "Sorgu: $query_yol";
// Html tablonun içinde gelen kolonları yazdırma
echo "<table>";
while ($yolsonuc = pg_fetch_array($result_yol, null, PGSQL_ASSOC)) {
echo "<tr>";
foreach ($yolsonuc as $yolbilgi) {
echo "<td>Sokak : $yolbilgi</td>";
}//foreach parantez
echo "</tr>";
} //while parantex
echo "</table>";
}//if parantez
if(!empty($uavt_kapi))
{
// Kapi Sql Sorgumuz
$query_kapi = "SELECT kapi_no FROM kapi where uavt_kod=$uavt_kapi";
$result_kapi = pg_query($query_kapi) or die('Sorgulama Yapılamadı: ' . pg_last_error());
echo "Sorgu: $query_kapi";
// Html tablonun içinde gelen kolonları yazdırma
echo "<table>";
while ($kapisonuc = pg_fetch_array($result_kapi, null, PGSQL_ASSOC)) {
echo "<tr>";
foreach ($kapisonuc as $kapibilgi) {
echo "<td>Kapi No : $kapibilgi</td>";
}//foreach parantez
echo "</tr>";
} //while parantex
echo "</table>";
}//if parantez
//örnek değerlerim:
//geomahalle kod 43285 407770
//geoyol kod 1038901 1039118
//geokapi kod 17669218 22302370
pg_free_result($result);
pg_close($dbconn);
?>
</body>
</html>
*****
Verilerin harita üzerinde gösterimi yapılacaksa
"select ST_Centroid(poly) from mahalle"
veya
"select adi,soyadi,mahalleadi,adaparsel,ST_astext(ST_Transform(ST_Centroid(poly),4326)) as location
from kisiler where 1=1 and soyadi='abc' order by adi"
komuduyla sorgulanan verinin orta noktasına gidilebilir.
Bu sql komudu ayrıca bir poly bilgisinin merkez noktasını bulmak olarakta geçer.
Yorumlar
Yorum Gönder