Avatar billede rampagezz Nybegynder
03. maj 2004 - 10:14 Der er 5 kommentarer og
1 løsning

Samme ID i to tabeller

Hej jeg skrev samme spørgsmål lørdag, men det er vist blevet slettet, mens serveren gik ned, men her er det igen:

Jeg har to tabeller: kundebase, og kundeprogram.

Kundebase har felterne: ID, fornavn, efternavn, osv.
Kundeprogram her felterne: ID, maalvaegt, maalbryst, osv.

Begge ID felter er: int(11), NOT NULL, auto_increment og Unik.

Mit spørgsmål lyder:

Når jeg har startet med at lave en record i "kundebase", og skal skrive målene ind i tabellen "kundeprogram", skal den hente ID'en fra "kundebase", så man kan de ligesom hører sammen.

Jeg har søgt efter tidliger spørgsmål på Eksperten, og fundet ud af at man kan bruge LAST_INSERT_ID() men jeg ved ikke hvordan jeg skal indsætte det i mit script.

---------------------------

Her er mit script:

<?php require_once('Connections/connection.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 kundeprogram (ID, maaldag, maalvaegt, maalbryst, maaltalje, maalhofte, maalvlaar, maalhlaar, bemaerkning) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['ID'], "int"),
                      GetSQLValueString($_POST['maaldag'], "text"),
                      GetSQLValueString($_POST['maalvaegt'], "int"),
                      GetSQLValueString($_POST['maalbryst'], "int"),
                      GetSQLValueString($_POST['maaltalje'], "int"),
                      GetSQLValueString($_POST['maalhofte'], "int"),
                      GetSQLValueString($_POST['maalvlaar'], "int"),
                      GetSQLValueString($_POST['maalhlaar'], "int"),
                      GetSQLValueString($_POST['bemaerkning'], "text"));

  mysql_select_db($database_connection, $connection);
  $Result1 = mysql_query($insertSQL, $connection) or die(mysql_error());

  $insertGoTo = "resultater.php?ID=%22%20.%20$row_Recordsetprogram%5B%27ID%27%5D%20.%20%22";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

$colname_Recordsetprogram = "1";
if (isset($_GET['ID'])) {
  $colname_Recordsetprogram = (get_magic_quotes_gpc()) ? $_GET['ID'] : addslashes($_GET['ID']);
}
mysql_select_db($database_connection, $connection);
$query_Recordsetprogram = sprintf("SELECT * FROM kundeprogram WHERE ID = %s", $colname_Recordsetprogram);
$Recordsetprogram = mysql_query($query_Recordsetprogram, $connection) or die(mysql_error());
$row_Recordsetprogram = mysql_fetch_assoc($Recordsetprogram);
$totalRows_Recordsetprogram = mysql_num_rows($Recordsetprogram);

$colname_Recordset1 = "1";
if (isset($_GET['ID'])) {
  $colname_Recordset1 = (get_magic_quotes_gpc()) ? $_GET['ID'] : addslashes($_GET['ID']);
}
mysql_select_db($database_connection, $connection);
$query_Recordset1 = sprintf("SELECT * FROM kundebase WHERE ID = %s", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $connection) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>

---------------------------

Jeg håber at jeg har formuleret mig godt nok, og at i kan hjælpe mig med mit problem.

-Rampagezz
Avatar billede arne_v Ekspert
03. maj 2004 - 10:33 #1
Du kan lave en query:

SELECT LAST_INSERT_ID()

og hente værdien og bruge den eller du kan bruge den direkte:

INSERT INTO ... VALUES (...,LAST_INSERT_ID(),...)
Avatar billede arne_v Ekspert
03. maj 2004 - 10:34 #2
[jeg vil undlade at forsøge at gøre mig klog på PHP syntaxen]
Avatar billede rampagezz Nybegynder
03. maj 2004 - 10:42 #3
Ok, men jeg er ikke så god til php selv, så hvis i kunne hjælpe mig med at skrive syntaxen, ville det være fedt.
Avatar billede rampagezz Nybegynder
05. maj 2004 - 13:57 #4
Er der ikke bare én, som kan hjælpe mig, med dette lille problem??
Avatar billede rampagezz Nybegynder
20. juni 2004 - 12:45 #5
lukker
Avatar billede rampagezz Nybegynder
20. juni 2004 - 12:46 #6
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester