Anfänger benötig mal Hilfe bei dem Einbau einer zweiten MySQL Tabelle

P

PilotPirx

Erstmal mal Gruß an alle Cracks!

Ich möchte gerne zu einer schon vorhandenen Tabelle noch eine zweite im Script einbauen.

Die zweite Tabelle hat den Namen Teilnehmer mit den gleichen Bedingungen wie bei der Tabelle Veranstaltungsort. Also die übergebene ID von der ersten Seite muss mit übernommen werden. Texte können frei eigegeben werden.

Folgende Felder existieren:

ID (autoincrement)
veranstaltungs_id (hier sollte die übergeben ID gespeichert werden wie in Tabelle Veranstaltungsort)
nummer (
name (text)

Hier mal einfach das Script.

Es wäre schön mir könnte jemand ein Tip geben.

Gruß!

PHP:
<?php require_once('Connections/seminar.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;
}
$id .= $_POST['id'];

$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 veranstaltungsort (veranstaltung_id, straße, plz, ort) VALUES (%s, %s, %s, %s)",
                       GetSQLValueString($_POST['veranstaltung_id'], "int"),
                       GetSQLValueString($_POST['straße'], "text"),
                       GetSQLValueString($_POST['plz'], "int"),
                       GetSQLValueString($_POST['ort'], "text"));

  mysql_select_db($database_seminar, $seminar);
  mysql_query($insertSQL, $seminar) or die(mysql_error());
  
  $insertGoTo = "ort.php";

  if (isset($_SERVER['QUERY_STRING']))
  	{ 
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
	}

  header(sprintf("Location: %s", $insertGoTo));
}
?>
 
Offtopic: haha bin auch grad an ner Seminar-Verwaltung dran ^^

Topic:

Was fürn Tipp willst du genau haben? Wie die Tabelle aussehen könnte oder was?

Also ich würde es der erweiterbarkeit an deiner Stelle so machen, dass du auch eine Teilnehmertabelle anlegst in der alle (potenziellen) Teilnehmer drin stehen, die an Seminaren teilnahmen/teilnehmen werden. Dann verknüpfst du einfach die beiden Tabellen über eine einfache Relationstabelle mit den Keys (aus den beiden Tabellen) als zusammengesetzter Primary. So haste eine konsistente und redundanzfreie Datenbank.

Hoffe das war in etwa was du wissen wolltest ;)
 
Die Tabelle Teilnehmer existiert schon, hatte ich glaube geschrieben.

Ich möchte eigentlich nur die Tabelle Veranstaltungsort und die Tabelle Teilnehmer auf eine PHP Seite bekommen.

Und in beiden Tabellen sollte mittels INSERT INTO die übergebene ID aus der Tabelle Veranstaltung im Feld "veranstaltungs_id" gespeichert werden.

Also keine Verknüpfung über Primary Key.
 
Übrigens hier zum Verständnis das vollständige Script

PHP:
<?php require_once('Connections/seminar.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;
}
$id .= $_POST['id'];

$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 veranstaltungsort (veranstaltung_id, straße, plz, ort) VALUES (%s, %s, %s, %s)",
                       GetSQLValueString($_POST['veranstaltung_id'], "int"),
                       GetSQLValueString($_POST['straße'], "text"),
                       GetSQLValueString($_POST['plz'], "int"),
                       GetSQLValueString($_POST['ort'], "text"));

  mysql_select_db($database_seminar, $seminar);
  mysql_query($insertSQL, $seminar) or die(mysql_error());
  
  $insertGoTo = "ort.php";

  if (isset($_SERVER['QUERY_STRING']))
  	{ 
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
	}

  header(sprintf("Location: %s", $insertGoTo));
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Veranstaltungsort</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="post" name="seminarort" action="<?php echo $editFormAction; ?>">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">Straße:</td>
      <td><input type="text" name="straße" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Plz:</td>
      <td><input name="plz" type="text" size="32" maxlength="5"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Ort:</td>
      <td><input type="text" name="ort" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><div align="center">
        <input type="submit" value="Datensatz einfügen">
      </div></td>
    </tr>
  </table>
  <input name="MM_insert" type="hidden" id="MM_insert" value="form1">
  <input type="hidden" name="veranstaltung_id" value="<?php echo $_GET['id']; ?>"> 
</form>
<p>&nbsp;</p>
</body>
</html>

Ich möchte hier eigentlich nur noch die zwei Felder Nummer und Name aus der Tabelle "Teilnehmer" reinhaben und wie schon gesagt die gleiche ID im Feld veranstaltungs_id in der Tabelle Teilnehmer gespeichert haben.
 
Zurück