SQL Beziehungen

Füllen einer Beziehungstabelle.

Sourcecode für eine Auswahl:

<html>
<head><title>Noten initialisieren</title>

<?php
function get_namen_liste(&$namen)
{
//Verbindung zum Datenbankserver aufbauen
$db_server=mysql_connect("localhost");
if (empty($db_server))
{
echo("<p>Verbindung zum DB-Server kann nicht hergestellt werden: ".mysql_error()."</p>\n");
return false;
}

// Verbindung zur gewünschten Datenbank aufbauen
$db=mysql_select_db("ainf",$db_server);
if (!$db)
{
echo("<p>Verbindung zur Datenbank kann nicht hergestellt werden: ".mysql_error()."</p>\n");
return false;
}

// SQL-Abfragestring festlegen
$qry="select name from schueler order by name;";

// Datenbankabfrage starten
$res=mysql_query($qry, $db_server);

if (!$res)
{
echo("<p>Die Datenbankabfrage liefert kein Ergebnis.</p>\n");
return false;
}

$num=mysql_num_rows($res);
for ($i = 0; $row = mysql_fetch_array($res, MYSQL_NUM); $i++)
$namen[$i] = $row[0];

return true;
}

function get_gegenst_liste(&$gegenst)
{
//Verbindung zum Datenbankserver aufbauen
$db_server=mysql_connect("localhost");
if (empty($db_server))
{
echo("<p>Verbindung zum DB-Server kann nicht hergestellt werden: ".mysql_error()."</p>\n");
return false;
}

// Verbindung zur gewünschten Datenbank aufbauen
$db=mysql_select_db("ainf",$db_server);
if (!$db)
{
echo("<p>Verbindung zur Datenbank kann nicht hergestellt werden: ".mysql_error()."</p>\n");
return false;
}

// SQL-Abfragestring festlegen
$qry="select fach from gegenst order by fach;";

// Datenbankabfrage starten
$res=mysql_query($qry, $db_server);

if (!$res)
{
echo("<p>Die Datenbankabfrage liefert kein Ergebnis.</p>\n");
return false;
}

$num=mysql_num_rows($res);
for ($i = 0; $row = mysql_fetch_array($res, MYSQL_NUM); $i++)
$gegenst[$i] = $row[0];

return true;
}
?>

</head>
<body>
<h2>Noten initialisieren</h2>
<form name="form1" method="post" action="ini_noten.php">
<table border="0">
<?php

if (get_gegenst_liste( $l_gegenst ))
{
$n = count($l_gegenst);
for ($i = 0; $i < $n; $i++)
{
echo "<tr>\n";
echo "<td><input type=\"radio\" name=\"rb_gg\" value=\"$l_gegenst[$i]\"></td>\n";
echo "<td>$l_gegenst[$i]</td>\n";
echo "</tr>\n";
}
}
echo "</table><hr /><table>\n";
if (get_namen_liste( $l_schueler ))
{
$n = count($l_schueler);
for ($i = 0; $i <= $n; $i++)
{
echo "<tr>\n";

if ($i < $n)

{
echo "<td><input type=\"radio\" name=\"rb_nm\" value=\"$l_schueler[$i]\"></td>\n";
echo "<td>$l_schueler[$i]</td>\n";

}

else echo "<td>&nbsp;</td><td>(c)Graf 2007</td>\n";
echo "</tr>\n";
}
}

?>
</table>
<input type="submit" value="Initialisieren">
<input type="reset">
</form>
</body>
</html>

Source für Füllen der Beziehungstabelle:

<html>
<head><title>Noten löschen</title>

<?php
function ini_note_schueler($name, $gegenstand)
{
//Verbindung zum Datenbankserver aufbauen
$db_server=mysql_connect("localhost");
if (empty($db_server))
{
echo("<p>Verbindung zum DB-Server kann nicht hergestellt werden: ".mysql_error()."</p>\n");
return false;
}

// Verbindung zur gewünschten Datenbank aufbauen
$db=mysql_select_db("ainf",$db_server);
if (!$db)
{
echo("<p>Verbindung zur Datenbank kann nicht hergestellt werden: ".mysql_error()."</p>\n");
return false;
}

// SQL-Abfragestring fuer id_schueler festlegen
$qry = "select id from schueler where name='$name';";

// Datenbankabfrage starten
$res = mysql_query($qry, $db_server);

if (!$res)
{
echo("<p>Die Datenbankabfrage liefert kein Ergebnis.</p>\n");
return false;
}

$num=mysql_num_rows($res);
if ($num != 1)
{
echo("<p>Die Datenbankabfrage liefert mehr als ein Ergebnis.</p>\n");
return false;
}
else
{
$id_schueler = mysql_result ($res, 0);
mysql_free_result($res);

// SQL-Abfragestring fuer id_schueler festlegen
$qry = "select id from gegenst where fach='$gegenstand';";

// Datenbankabfrage starten
$res = mysql_query($qry, $db_server);

if (!$res)
{
echo("<p>Die Datenbankabfrage liefert kein Ergebnis.</p>\n");
return false;
}

$num=mysql_num_rows($res);
if ($num != 1)
{
echo("<p>Die Datenbankabfrage liefert mehr als ein Ergebnis.</p>\n");
return false;
}
else
{
$id_gegenst = mysql_result ($res, 0);
mysql_free_result($res);

// SQL-String fuer Initialisierung festlegen (Note 0 wird eingetragen)
$qry="insert into rel_schueler_noten values (NULL, $id_schueler, $id_gegenst, NULL);";

// Datenbankabfrage starten
$res=mysql_query($qry, $db_server);

if (!$res)
{
echo("<p>Die Datenbankabfrage liefert kein Ergebnis.</p>\n");
return false;
}
//mysql_free_result($res);
mysql_close($db_server);
return true;
}
}
}
?>

</head>
<body>
<h2>Noten zur&uuml;cksetzen</h2>

<?php

$gegenst = $_POST['rb_gg'];
$name = $_POST['rb_nm'];
echo "<p>Note f&uuml;r den Gegenstand \"$gegenst\" wird initialisiert f&uuml;r: <b>$name</b>";
if (ini_note_schueler ($name, $gegenst))
echo " ... ok</p>\n";
else
echo " ... <b>Fehler!</b></p>\n";

?>
</body>
</html>

<<zurück>>