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> </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ücksetzen</h2>
<?php
$gegenst = $_POST['rb_gg'];
$name = $_POST['rb_nm'];
echo "<p>Note für den Gegenstand \"$gegenst\"
wird initialisiert für: <b>$name</b>";
if (ini_note_schueler ($name, $gegenst))
echo " ... ok</p>\n";
else
echo " ... <b>Fehler!</b></p>\n";
?>
</body>
</html>