<?php

// Datenbank öffnen
function OpenDB()  
{
global $P_DBTyp;
global $P_Server;
global $P_User;
global $P_Password;
global $P_Database;
	if ($P_DBTyp == "MySQL")
	{
		$verbindung = mysqli_connect($P_Server, $P_User, $P_Password) or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch!");
		mysqli_select_db($verbindung, $P_Database) or die ("Die Datenbank existiert nicht.");
	} elseif ($P_DBTyp == "PostgeSQL")
	{
		$verbindung = pg_connect($P_Server, $P_User, $P_Password) or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch!");
		pg_select_db($P_Database) or die ("Die Datenbank existiert nicht.");
	} else die ("Datenbanktyp $P_DBTyp wird nicht unterstützt (OpenDB)");
	return $verbindung;
};


// Datenbank schließen
function CloseDB($verbindung)
{
global $P_DBTyp;
	if ($P_DBTyp == "MySQL")
	{
		mysqli_close($verbindung);
	} elseif ($P_DBTyp == "PostgreSQL")
	{
		pg_close($verbindung);
	} else die ("Datenbanktyp $P_DBTyp wird nicht unterstützt (CloseDB)");
};


// Query-Abfrage ausführen
function MyQuery($SQL)
{
global $P_DBTyp;
global $verbindung;
	$Query = null;
	if ($P_DBTyp == "MySQL")
	{
		$Query = mysqli_query($verbindung, $SQL);
	} else die ("Datenbanktyp $P_DBTyp wird nicht unterstützt (MyQuery)");
	if ($Query === False)
		die ("Fehler SQL-Query: ".$SQL);
	return $Query;
};


// Datenzeile lesen
function MyFetchArray($Query)
{
global $P_DBTyp;
	$Zeile = null;
	if ($Query)
	{
		if ($P_DBTyp == "MySQL")
		{
			$Zeile = mysqli_fetch_array($Query, MYSQL_ASSOC);
		} else die ("Datenbanktyp $P_DBTyp wird nicht unterstützt (MyFetchArray)");
	}
	return $Zeile;
};


// Anzahl Datenzeile lesen
function MyNumRows($Query)
{
global $P_DBTyp;
	if ($P_DBTyp == "MySQL")
	{
		$Zeilen = mysqli_num_rows($Query);
	} else die ("Datenbanktyp $P_DBTyp wird nicht unterstützt (MyNumRows)");
	return $Zeilen;
};


// Query schließen
function MyFreeResult($Query)
{
global $P_DBTyp;
	$QueryResult = null;
	if ($Query)
	{
		if ($P_DBTyp == "MySQL")
		{
			$QueryResult = mysqli_free_result($Query);
		} else die ("Datenbanktyp $P_DBTyp wird nicht unterstützt (MyFreeResult)");
	}
	return $QueryResult;
};


// Datenfeld auslesen
function GetField($DBZeile, $Field)
{
	$Daten = $DBZeile[$Field];
	if ($Daten == "") {
		$Daten = "&nbsp;";
	} else {
		//$Daten = htmlentities($Daten, ENT_QUOTES, 'UTF-8');
		$Daten = htmlentities($Daten, ENT_QUOTES, '');
		$Daten = str_replace("\n", "<br>\n", $Daten);
	}
	return $Daten;
};


// Datenfeld als Ja/Nein Feld auslesen
function GetFieldJN($DBZeile, $Field)
{
	if (GetField($DBZeile, $Field) == 0) {
		$Daten = "Nein";
	} else $Daten = "Ja";
	return $Daten;
};


// Datenfeld als Handbuch-Verzeichnis Feld auslesen
function GetFieldHandbuch($DBZeile, $Field, $Table)
{
global $P_DirHandbuch;
global $P_DirProjekt;
	$Daten = GetField($DBZeile, $Field);
	$Chg = "";
	if (strncmp($Daten, "(\$H)", 4) == 0)
	{
		$Chg = $P_DirHandbuch;
	} else if (strncmp($Daten, "(\$P)", 4) == 0)
	{
		$Chg = $P_DirProjekt;
	}
	if ($Chg != "")	// Codierung ersetzen für Anzeige
	{
		$Daten = $Chg . "\\" . substr($Daten, 5);
	}
	if (strcmp($Daten, "&nbsp;"))	// Verzeichnis oder Link oder Datei
	{	// Bei Klick "dl.php" aufrufen, der macht dann die Darstellung der der Datei / Download, je nach Typ
		$ID = GetField($DBZeile, "ID");
		$Daten = "<a href=\"dl.php?t=".$Table."&i=".$ID."\" target=\"_blank\" style=\"font-family:arial,sans-serif\">".$Daten."</a>";
	}
	return $Daten;
};


// Datenfeld auslesen und ausgeben als Preis mit 2..5 Kommastellen
function GetFieldPreis($DBZeile, $Field)
{
	if ($DBZeile==NULL)
	{
		$Daten = $Field;
	} else {
		$Daten = $DBZeile[$Field];
	}
	if ($Daten == "") {
		$Daten = "&nbsp;";
	} else {
		$Daten = round($Daten, 5);
		$DezKomma = $Daten - floor($Daten);
		$DezStellen = 0;
		while (($DezKomma > 0) && ($DezStellen < 5))
		{
			$DezStellen = $DezStellen + 1;
			$DezKomma = round($DezKomma * 10, 5 - $DezStellen);
			$DezKomma = $DezKomma - floor($DezKomma);
		}
		if ($DezStellen < 2)
		  $DezStellen = 2;
		$Daten = number_format($Daten, $DezStellen);
	}
	return $Daten;
};


// Bild aus Datenbank auslesen und anzeigen
function Foto($FotoID)
{
	$Result = ($FotoID > 0);
	if ($Result) // Bild von Bauteil zeigen
		echo '<img src="dlf.php?f='.$FotoID.'" alt="" />'; // Download-PHP Link
	return $Result;
};


// String zu Datenbankabfrage sicher wandeln
function MyEscapeString($Text)
{
global $P_DBTyp;
global $verbindung;
	$Result = "";
	if ($P_DBTyp == "MySQL")
	{
		$Result = mysqli_real_escape_string($verbindung, $Text);
	} elseif ($P_DBTyp == "PostgreSQL")
	{
		$Result = pg_escape_string($Text); // <<< muss noch geprüft werden!
	} else die ("Datenbanktyp $P_DBTyp wird nicht unterstützt (MyEscapeString)");
	return $Result;
};


?>