<?
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_note_mysql(&$p_note)
{

   // Sicherheitsdaten inkludieren
   include("../sec/data.php");

   //Verbindung zum Datenbankserver aufbauen 
   $con=mysqli_connect("localhost",$hk_db,$hk_pw,"leiserberge_at"); //hk mysqli 0108118
   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 * from phpcode10 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_note = my_mysqli_result($res,0,"note");

   return true;
}

function get_hobbies_mysql(&$p_hobbies)
{
   // Sicherheitsdaten inkludieren
   include("../sec/data.php");

   //Verbindung zum Datenbankserver aufbauen 
   $con=mysqli_connect("localhost",$hk_db,$hk_pw,"leiserberge_at"); //hk mysqli 0108118
   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 * from phpcode10 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_hobbies = my_mysqli_result($res,0,"hobbies");

   return true;
}

function set_note_liste($dieNote, &$p_a,&$p_b,&$p_c,&$p_d,&$p_e)
{
   // Referenzparameter in Abhängigkeit der der Note setzen
   switch($dieNote)
   {
      case "a":
         $p_a=" selected ";
         break; 
      case "b":
         $p_b=" selected ";
         break; 
      case "c":
         $p_c=" selected ";
         break; 
      case "d":
         $p_d=" selected ";
         break; 
      case "e":
         $p_e=" selected ";
         break; 
      default:
         // Fehler: unerwartete Wert von $note
         return false;
         break;
   }

   // alles OK
   return true;
}

function set_hobbies_liste($myHobbies,&$p_a,&$p_b,&$p_c,&$p_d,&$p_e)
{
   // Defaultwerte setzen
   $p_a="";
   $p_b="";
   $p_c="";
   $p_d="";
   $p_e="";
   $length=strlen($myHobbies);
   
   for($i=0;$i<$length;$i++)
   { 
      switch($myHobbies[$i])
      {
         case "a":
            $p_a=" selected ";
            break;
         case "b":
            $p_b=" selected ";
            break;
         case "c":
            $p_c=" selected ";
            break;
         case "d":
            $p_d=" selected ";
            break;
         case "e":
            $p_e=" selected ";
            break;
      }
   }

   // alles OK
   return true;
}


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

if (get_note_mysql($note))
{
   // Notenwert in die Einfachauswahlliste setzen
   if (!set_note_liste($note, $snote_a, $snote_b, $snote_c, $snote_d, $snote_e))
   {
      // Datenbankfehler
      // HTML-Oberfläche wird nicht ausgegeben
      return false;
   }
}

if (get_hobbies_mysql($hobbies))
{
   // Notenwert in die Einfachauswahlliste setzen
   if (!set_hobbies_liste($hobbies, $shobby_a, $shobby_b, $shobby_c, $shobby_d, $shobby_e))
   {
      // Datenbankfehler
      // HTML-Oberfläche wird nicht ausgegeben
      return false;
   }
}

?>

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

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

<form name="inputForm" method="post"  action="code10a.php" onSubmit="return checkInputPhpCode9();">
   <table border="0" cellspacing="5" cellpadding="0">
   <tr>
      <td>
         <label>Notenliste: </label>
      </td>
      <td>
         <select name ="note" size="1">
            <option <? echo($snote_a);?> value="a">Sehr gut</option>
            <option <? echo($snote_b);?> value="b">Gut</option>
            <option <? echo($snote_c);?> value="d">Befriedigend</option>
            <option <? echo($snote_d);?> value="d">Genügend</option>
            <option <? echo($snote_e);?> value="e">Nicht genügend</option>
         </select>
      </td>
    </tr>
      <td>
         <label>Hobbies: </label>
      </td>
      <td>
         <select name ="hobbies[]" size="5" multiple>
            <option  <? echo($shobby_a);?> value="a">Rad fahren</option>
            <option  <? echo($shobby_b);?> value="b">Schwimmen</option>
            <option  <? echo($shobby_c);?> value="c">Segel fliegen</option>
            <option  <? echo($shobby_d);?> value="d">Fu&szlig;ball spielen</option>
            <option  <? echo($shobby_e);?> value="e">Tanzen</option>
            </select>
         <td align="left" valign="bottom">
         <input type="submit" name="send" value="DB-Speichern">
      </td>
    </tr>
  </table>
</form>
</body>
</html>