Menu
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

Postgresql och PHP för webben

Posted on 2011-07-26

Jag har jobbat en hel del med Open Source GIS och databaser nu i sommar, men har inte varit inne på områden som gör det superenkelt för ”vanliga” användare att ta del av och uppdatera informationen i geografiska databaser.

Jag är övertygad om att de som inte är vana vid GIS har ett inbyggt motstånd till att lära sig det. Att söka i webbformulär och uppdatera textfält på en hemsida det klarar dock de flesta. Min plan är att skapa en vanlig webbsida med koppling till de geografiska databaserna, där användare kan söka och uppdatera informationen, utan att behöva använda ett GIS, eller kartor över huvud taget.

Installera PHP5 med kommandot ”sudo apt-get install php5 php5-pgsql”.

Starta om Apache med: ”sudo /etc/init.d/apache2 restart”

Kontrollera installationen genom att skapa ett enkelt PHP skript:

 <html>
 <head>
 <title> PHP Test </title>
 </head>
 <body>
 PHP5 test:<br>
 <?php
 phpinfo( );
 ?>
 </body>
 </html>

Spara filen i /var/www/ med filändelsen .php (Du kan behöva sätta rättigheterna på mappen med kommandot ”sudo chmod 777 /var/www/”) Testa i en webläsarer med adressen ”http://’ip adress’/’filnamn.php'”. Förhoppningsvis får du nu upp en sida med massor av information. Om inte kan det vara samma problem jag hade när jag hade glömt installera php5-pgsql.

Nu över till databaskopplingen. PHP-skript omsluts av taggarna <?php och ?> (se ovan). Där emellan skriver man sin PHP kod.

Skapa koppling mot databasen:

 $databas = pg_connect("host=192.168.0.111 port=5432 dbname=testdb user=postgres");
 if (!$databas) {
 die("Fel i databasanslutning: " . pg_last_error());
 } 

Variabeln $databas kan heta vad som helst, ipadressen skall vara serverns adress, dbname är den databas du vill ansluta till. Raderna under är för felhantering.

Ställ en fråga till databasen:

 $sql = "SELECT * FROM fotografier";
 $resultat = pg_query($databas, $sql);
 if (!$resultat) {
 die("Fel i SQL-frågan: " . pg_last_error());
 } 

Här läser jag allt från min tabell fotografier, och har även med felhantering. Upprepning genom hela tabellen:

 while ($row = pg_fetch_array($resultat)) {
 echo "Riktning: " . $row[8] . "<br />";
 echo "Bild: <a href='" . $row[10] . "'>";
 echo "<img SRC='" . $row[9] . "'></a><p />";
 }

För varje rad läser och använder jag informationen i kolumn 8, 9 och 10. Lägg märke till hur HTML koden är inbakad.

Avslutningsvis stänger jag databasen:

 pg_free_result($resultat);
 pg_close($databas);

Resultatet av allt kan du se på min testsida: phptest.php.

Jag tänker använda detta för att skapa en websida där vem som helst i formulär kan söka och uppdatera information om bilderna i databasen. Jag är övertygad om att det är enklare för vanliga användare att uppdatera data i ett webbformulär än i ett GIS program. Med en webbsida så är alla problem med databaskopplingar fixade, och jag kan styra användarna till specifika fält i tabellerna. Samtidigt så bibehålls den geografiska kopplingen och de som använder data i ett GIS-system kan ta del av den uppdaterade informationen.

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Translate with Google

GBR In English
GER Auf Deutch
FRA En Français
ESP En Español
Swedish is a hard language for a machine to translate. Nuance and detail will likely be lost.
     

Bok om QGIS på Svenska

Bok

Beställ Boken/E-bok genom att klicka på bilden (även förhandsgranskning).

Senaste kommentarer

  • Lene Fischer om Skapa bildmask för WebODM
  • Gabriel om Punktmoln i QGIS 3.18
  • klakar om Punktmoln i QGIS 3.18
  • Gabriel om Punktmoln i QGIS 3.18
  • Hector Garrido om QGIS LTR vs LTR

Arkiv

Prenumerera på Geosupportsystem

Skriv in namn och epost för att prenumerera på meddelanden från denna blogg.
Loading

geosupport

YouTube video to frames. Processed in OpenDroneMap YouTube video to frames. Processed in OpenDroneMap and visualized in QGIS 3.17.
Japp! Dubbelbeställde TVÅ gånger. En annan mode Japp! Dubbelbeställde TVÅ gånger. En annan modell levererades idag.
Ooops. Tryckte nog för många gånger på bestäl Ooops. Tryckte nog för många gånger på beställ-knappen...
Ladda mer...

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2021 Geosupportsystem | WordPress Theme by Superbthemes.com