<?
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;
}

function get_hobby_mysql(&$p_hobby)
{

   // 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 false;
   }

   mysqli_set_charset($con,"utf8");
   
   // SQL-Abfragestring festlegen
   // In der Tabell soll es nur genau einen Datensatz geben
   $sqlab="select hobby from phpcode11 where id=1;";

   // Datenbankabfrage starten
   $res=mysqli_query($con,$sqlab);

   if (!$res)
   {
      // Datenbankabfrage liefert kein Ergebnis
      return false;
   }

   $num=mysqli_num_rows($res);

   if ($num > 1)
   {
      return false;
   }

   if ($num < 1)
   {
      return false;
   }

   // Defaultwerte der Parametervariablen auf einen Leerstring setzen
   $p_note = "";

   // Daten aus der mySQL-DB auf die Parametervariablen setzen
   $p_hobby = my_mysqli_result($res,0,"hobby");

   return true;
}

function get_gewohnheiten_mysql(&$p_gewohnheiten)
{
   // 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 false;
   }

   mysqli_set_charset($con,"utf8");
   
   // SQL-Abfragestring festlegen
   // In der Tabell soll es nur genau einen Datensatz geben
   $sqlab="select gewohnheiten from phpcode11 where id=1;";

   // Datenbankabfrage starten
   $res=mysqli_query($con,$sqlab);

   if (!$res)
   {
      // Datenbankabfrage liefert kein Ergebnis
      return false;
   }

   $num=mysqli_num_rows($res);

   if ($num > 1)
   {
      return false;
   }

   if ($num < 1)
   {
      return false;
   }

   // Defaultwerte der Parametervariablen auf einen Leerstring setzen
   $p_hobbies = "";

   // Daten aus der mySQL-DB auf die Parametervariablen setzen
   $p_gewohnheiten = my_mysqli_result($res,0,"gewohnheiten");

   return true;
}

function set_hobby_radio($meinHobby, &$p_a,&$p_b,&$p_c)
{
   // Referenzparameter in Abhängigkeit der der Note setzen
   switch($meinHobby)
   {
      case "a":
         $p_a=" checked ";
         break; 
      case "b":
         $p_b=" checked ";
         break; 
      case "c":
         $p_c=" checked ";
         break; 
      default:
         // Fehler: unerwartete Wert von $note
         return false;
         break;
   }

   // alles OK
   return true;
}

function set_gewohnheiten_checkbox($meineGewohnheiten,&$p_a,&$p_b,&$p_c)
{
   // Defaultwerte setzen
   $p_a="";
   $p_b="";
   $p_c="";

   $length=strlen($meineGewohnheiten);
   
   for($i=0;$i<$length;$i++)
   { 
      switch($meineGewohnheiten[$i])
      {
         case "a":
            $p_a=" checked ";
            break;
         case "b":
            $p_b=" checked ";
            break;
         case "c":
            $p_c=" checked ";
            break;
         default:
            // Fehler: unerwartete Wert 
            return false;
            break;
      }
   }

   // alles OK
   return true;
}

// Werte für die Einfachauswahlliste von mySQL-Server abfragen

if (get_hobby_mysql($hobby))
{
   // Notenwert in die Einfachauswahlliste setzen
   if (!set_hobby_radio($hobby, $shobby_a, $shobby_b, $shobby_c))
   {
      // Datenbankfehler
      // HTML-Oberfläche wird nicht ausgegeben
      return false;
   }
}

if (get_gewohnheiten_mysql($gewohnheiten))
{
   // Notenwert in die Einfachauswahlliste setzen
   if (!set_gewohnheiten_checkbox($gewohnheiten, $shabit_a, $shabit_b, $shabit_c))
   {
      // Datenbankfehler
      // HTML-Oberfläche wird nicht ausgegeben
      return false;
   }
}

?>

<html>
<head>
<title>Daten zwischen Kontroll- und Optionsfelder und mySQL-Datenbank transferieren</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function checkInputPhpCode11()
{
   // derzeit keine Syntaxprüfung
   return true;
}
//-->
</script>

</head>
<body bgcolor="#FFFFFF" text="#000000">

<form name="inputForm" method="post"  action="code11a.php" onSubmit="return checkInputPhpCode11();">
   <table border="0" cellspacing="5" cellpadding="0">
   <tr>
      <td height="15"></td>
      <td></td>
   </tr>
   <tr>
      <td><b>Meine Gewohnheiten:</b></td>
      <td></td>
   </tr>
   <tr>
      <td>
         <label>Nichtraucher</label>
      </td>
      <td>
         <input name="gewohnheit[]"  type="checkbox" value="a" <? echo($shabit_a); ?>>
      </td>
   </tr>
   <tr>
      <td>
         <label>Vegetarier</label>
      </td>
      <td>
         <input name="gewohnheit[]"  type="checkbox" value="b" <? echo($shabit_b); ?>>
      </td>
   </tr>
   <tr>
      <td>
         <label>Alkoholiker</label>
      </td>
      <td>
         <input name="gewohnheit[]"  type="checkbox" value="c" <? echo($shabit_c); ?>>
      </td>
   </tr>
   <tr>
      <td height="15"></td>
      <td></td>
   </tr>
   </tr>
   <tr>
      <td><b>Mein liebstes Hobby:</b></td>
      <td></td>
   </tr>
   <tr>
      <td>
         <label>Schwimmen</label>
      </td>
      <td>
         <input name="hobby"  type="radio" value="a" <? echo($shobby_a); ?>>
      </td>
   </tr>
   <tr>
      <td>
         <label>Fu&szlig;ball spielen</label>
      </td>
      <td>
         <input name="hobby"  type="radio" value="b" <? echo($shobby_b); ?>>
      </td>
   </tr>
   <tr>
      <td>
         <label>Rad fahren</label>
      </td>
      <td>
         <input name="hobby"  type="radio" value="c" <? echo($shobby_c); ?>>
      </td>
      <td>
         <td align="left" valign="bottom">
         <input type="submit" name="send" value="DB-Speichern" >
      </td>
      </tr>
  </table>
</form>
</body>
</html>