Problem bei Datenbankverknüpfung in PHP

Skyhead

Mitglied
Hallo Leute

Ich sitze momentan an einem Projekt unserer Schule. Wir möchten gern alle Schulbücher der Gymnasien erhalten. Dazu habe ich ein Formuar Angelegt und auch die entsprechenden Tabellen in phpMyAdmin. Also ich kann neue Datensätze einfügen und so, das funktioniert. Mein Problem liegt nur darin, dass ich über eine Auswahlliste ein Datensatz aus einer anderen Tabelle (Tabelle Verlag) in in die Tabelle Buch eintragen möchte. Denn ich lege mir in der Tabelle Verlag einen neuen Verlag an, dabei wird die VNr Nummer automatisch gesetzt. Diese Nummer möchte ich nun in meine Tabelle Buch eingetragen haben.

Dazu hier die Tabellen und das dazugehörige Formular:
Bild Tabellen

Bild Formular

Hier noch der dazugehörige Quelltext:
PHP:
<?php require_once('Connections/db_link.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO buch (ISBN, BNr, Titel, VNr, FNr) VALUES (%s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['ISBN'], "text"),
                       GetSQLValueString($_POST['BNr'], "int"),
                       GetSQLValueString($_POST['Titel'], "text"),
                       GetSQLValueString($_POST['VNr'], "int"),
                       GetSQLValueString($_POST['FNr'], "int"));

  mysql_select_db($database_db_link, $db_link);
  $Result1 = mysql_query($insertSQL, $db_link) or die(mysql_error());
}

mysql_select_db($database_db_link, $db_link);
$query_Verlag = "SELECT * FROM verlag ORDER BY Name DESC";
$Verlag = mysql_query($query_Verlag, $db_link) or die(mysql_error());
$row_Verlag = mysql_fetch_assoc($Verlag);
$totalRows_Verlag = mysql_num_rows($Verlag);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Neues Schulbuch anlegen</title>
<script type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
</head>

<body>

<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
  <h1 align="center">neues Schulbuch anlegen</h1>
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">ISBN:</td>
      <td><input type="text" name="ISBN" value="" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">BNr:</td>
      <td><input type="text" name="BNr" value="" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Titel:</td>
      <td><input type="text" name="Titel" value="" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Verlag:</td>
      <td><select name="Verlag">
        <?php
do {  
?>
        <option value="<?php echo $row_Verlag['VNr']?>"><?php echo $row_Verlag['Name']?></option>
        <?php
} while ($row_Verlag = mysql_fetch_assoc($Verlag));
  $rows = mysql_num_rows($Verlag);
  if($rows > 0) {
      mysql_data_seek($Verlag, 0);
	  $row_Verlag = mysql_fetch_assoc($Verlag);
  }
?>
<?php 
$Schrieben=$row_Verlag['VNr'];
?>
      </select></td>
      <td><a href="#" onclick="MM_openBrWindow('verlag.php','NeuenVerlag','status=yes,scrollbars=yes,resizable=yes,width=500,height=350')"><strong>neuen Verlag anlegen</strong></a></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">FNr:</td>
      <td><input type="text" name="FNr" value="" size="32" /></td>
      <td><a href="#" onclick="MM_openBrWindow('fach.php','NeuesFach','status=yes,scrollbars=yes,resizable=yes,width=500,height=350')"><strong>neues Fach anlegen</strong></a></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><input name="submit" type="submit" value="Datensatz einfügen" /></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1">
</form>
<p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result($Verlag);
?>

ich bitte um eine schnelle Hilfe.
 
Du hast einfach nicht den richtigen Variablen namen angeben wie unten das ist alles

Statt:
PHP:
GetSQLValueString($_POST['VNr'], "int"), 
// Sollte es lauten 
  GetSQLValueString($_POST['Verlag'], "int"),

Da in deinen Option feld der Name Verlag heißt und nicht VNr

Mfg Splasch
 
Zurück