Avatar billede rampagezz Nybegynder
25. maj 2004 - 21:13 Der er 6 kommentarer og
1 løsning

Samme ID i to tabeller

Hej Eksperten.

Jeg har et problem som i måske kan hjælpe mig med.

Jeg har to tabeller: kundebase, og kundeprogram.

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

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

Når jeg har lavet en record i "kundebase", og skal skrive målene ind i tabellen "kundeprogram", skal den hente ID'en fra

"kundebase", så man kan se de ligesom hører sammen.

Hvordan gør man det?

Jeg har søgt efter tidligere 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);
?>

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

Håber i kan hjælpe mig.

Kenneth.
Avatar billede krydset Nybegynder
25. maj 2004 - 21:17 #1
mysql_insert_id() returner id´et fra sidste mysql_insert
Avatar billede krydset Nybegynder
25. maj 2004 - 21:19 #2
<?php
mysql_query("INSERT INTO .....");
$id = mysql_insert_id();
echo $id;
?>
Avatar billede krydset Nybegynder
25. maj 2004 - 21:20 #3
hvis det så er den første insert query der bliver kørt vil $id returnere 1
Avatar billede dennismp Nybegynder
25. maj 2004 - 21:26 #4
Han er inde på det rigtige, LAST_INSERT_ID() gør det samem som mysql_insert_id() .. forskellen er at LAST_INSERT_ID() er en SQL statement - mysql_insert_id() er et php kald.

Normalt er det nemmest at bruge mysql_insert_id() - det spare et par funktions kald :)
Avatar billede rampagezz Nybegynder
20. juni 2004 - 12:44 #5
Undskyld ventetiden. Har ikke haft tid til at kigge på det, men det er ikke vigtigt nu, for jeg har droppet det... Ellers tak for hjælpen. Hvis i vil have point, så læg et svar hver, så kan i dele dem...
Avatar billede dennismp Nybegynder
20. juni 2004 - 13:13 #6
svar
Avatar billede krydset Nybegynder
21. juni 2004 - 09:54 #7
hvor svært ka det være :-P
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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