<?
// Datei utility_funktionen.php

// fuer korrekte Darstellung von Sonderzeichen 
header("Content-Type: text/html; charset=ISO-8859-1");

// Definition von Konstanten
define("OK",0);
define("ERR",-1);

// Entschluesselung fuer POST-Daten
function my_decode($str)
{
   $str=base64_decode(urldecode($str));
   return $str;
}

// Datenbankabfrage komplett
function my_db_query($sql,&$res)
{
   // Sicherheitsdaten inkludieren
   include("../sec/data.php");

   //Verbindung zum Datenbankserver aufbauen 
   $con=mysqli_connect("localhost",$hk_db,$hk_pw,"leiserberge_at");
   if (!$con)
   {
      echo ("Verbindung zu DB-Server/Datenbank kann nicht hergestellt werden: ".mysqli_connect_error()."<br>");
      return ERR;
  }

   mysqli_set_charset($con,"utf8");
 
   //Datenbankabfrage durchfueren
   $res=mysqli_query($con,$sql);
   if (!$res)
   {
      echo("<b>Datenbankfehler: </b>".mysqli_error($con));
      return ERR;
   }

   // Verbindung zur Datenbank beenden
   mysqli_close($con);

   return OK;
}

function my_mysqli_result($res,$crow,$field)
{
    // Array definieren
    $feldname=array();
    
    // Anzahl der Zeilen/Datensätze der SQL-Abfrage ermitteln
    $num_lines = mysqli_num_rows($res);
       
    if ($num_lines < 1)
    {
        // es gibt keine Datensätze zum Anzeigen
        return false;
    }

    // alle Namen der Tabellenfelder/Tabellenspalten im Array $feldname speichern
    for ($i=0;$feldinfo=mysqli_fetch_field($res);$i++)
    {
        $feldname[$i]=$feldinfo->name;
    }

    // den Ergebniszeiger der SQL-Abfrage wieder zur ersten Tabellenspalte rücksetzen
    mysqli_field_seek($res,0);    
    
    // die gewünschte Zeile d.h. den gewünschten Datensatz suchen
    for ($i=0; $row = mysqli_fetch_row($res); $i++)
    {
        if ($i == $crow) // wenn der gewünschte Datensatz gefunden ist
        {
            // Anzahl der Spalte ermitteln
            $anz_spalten=count($row);
    
            // die gewünschte Spalte d.h. das gewünschte Tabellenfeld suchen
            for ($j=0; $j<$anz_spalten;$j++)
            {
                if ($feldname[$j] == $field) // das gewünschte Tabellenfeld ist gefunden
                {
                    // den Ergebniszeiger der SQL-Abfrage wieder zum ersten Datensatz rücksetzen
                    mysqli_data_seek($res,0);
                    
                    // die Daten im Datensatz sind in derselben Reihenfolge wie 
                    // die Namen der zuvor ermittelten Tabellenfelder. Daher kann 
                    // der Wert des gewünschten Tabellenfeldes zurückgeliefert werden
                    return $row[$j];
                }
            }
        }
    }

    // den Ergebniszeiger der SQL-Abfrage wieder zum ersten Datensatz rücksetzen
    mysqli_data_seek($res,0);
    
    // das gewünschte Tabellenfeld wurde nicht gefunden
    return false;
}

?>