Php 将数据保存到两个单独的表中并按用户ID显示

Php 将数据保存到两个单独的表中并按用户ID显示,php,mysql,sql,database,syntax,Php,Mysql,Sql,Database,Syntax,我了解php和mysql的基础知识,但当它变得太复杂时,我有点迷路了 具体来说,我使用DW创建了一个登录表单,该表单在db表中包含用户ID、用户名、密码、名字、姓氏等 我正在建立电子商务网站,作为开始,我走遍了所有的地方,寻找并学习了WWW中的脚本如何建立“非常基本的商店”。 我有另一个表,其中包含产品id、产品名称、价格、类别、子类别、添加日期 我有一个功能齐全的cart.php,它可以计算总价等。 我想要实现的是人们能够通过他们的用户ID保存他们的购物车,当他们返回并登录到他们的会话时,他们

我了解php和mysql的基础知识,但当它变得太复杂时,我有点迷路了

具体来说,我使用DW创建了一个登录表单,该表单在db表中包含用户ID、用户名、密码、名字、姓氏等

我正在建立电子商务网站,作为开始,我走遍了所有的地方,寻找并学习了WWW中的脚本如何建立“非常基本的商店”。 我有另一个表,其中包含产品id、产品名称、价格、类别、子类别、添加日期

我有一个功能齐全的cart.php,它可以计算总价等。 我想要实现的是人们能够通过他们的用户ID保存他们的购物车,当他们返回并登录到他们的会话时,他们能够找到他们上次会话保存在购物车中的产品,但他们从未签出。基本上是“为以后保存”的项目

据我所知,人们建议再创建一个具有相同信息的表,只需将userID添加到新表“savedcarthistory”,它将分配给特定用户,在保存购物车后,它将添加所有信息并分配给用户。 我感到困惑的问题是,如何提取分配给特定用户ID的信息

要添加和保存购物车,我知道我可以使用mysql查询插入到“savedCarHistory”中,但我不知道如何提取分配给用户的数据,其中不包括用户id,而是他们保存的产品信息,以便稍后签出。。。最好的方法是什么?有人会指出mysql查询语法吗


任何帮助都将不胜感激

请尝试添加到目前为止您已经完成的一些代码

无论如何,据我所知,您希望将用户id和产品id插入表savedcarthistory

然后,您可以稍后使用user\u id从user表中获取详细信息,并使用product\u id从product\u表中获取详细信息

更改插入,如下所示

// Adding product to db
            $sql=mysql_query("INSERT INTO savedcarthistory (userID,product_id,price,details,category,subcategory,date_added)
            VALUES ('$userID','$product_id','$price','$details','$category','$subcategory',now())") or die (mysql_error());

通过此操作,您将使用相应的ID获得用户表和产品表的详细信息。这是验证用户是否为用户后的会话代码

            <?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "0,1";
$MM_donotCheckaccess = "false";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
  // For security, start by assuming the visitor is NOT authorized. 
  $isValid = False; 

  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  if (!empty($UserName)) { 
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    $arrUsers = Explode(",", $strUsers); 
    $arrGroups = Explode(",", $strGroups); 
    if (in_array($UserName, $arrUsers)) { 
      $isValid = true; 
    } 
    // Or, you may restrict access to only certain users based on their username. 
    if (in_array($UserGroup, $arrGroups)) { 
      $isValid = true; 
    } 
    if (($strUsers == "") && false) { 
      $isValid = true; 
    } 
  } 
  return $isValid; 
}

$MM_restrictGoTo = "login.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) > 0) 
  $MM_referrer .= "?" . $_SERVER['QUERY_STRING'];
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo); 
  exit;
}
?>
我的问题是如何将整个购物车信息添加到另一个表中,以及如何将购物车显示为特定的userID。或者最好的解决方法是什么?
是否可以将整个购物车保存为db中的一列并按用户ID显示?

不知道我是否理解正确。
您正在寻找一种方法,如何为一个客户存储多个产品,对吗?您可以设置自己的加密,该加密可以保存到数据库的1个字段中

例如:
您按ID和数量获得了3种产品:
-ID:5Q:2
-ID:3 Q:7
-ID:7 Q:1

现在继续,用符号分隔,将它们合并在一起。
您的字符串可以是:'*5.2*3.7*7.1'
使用用户ID将此字符串保存到您的数据库中。如果用户返回,请通过将产品按*和ID与数量按“.”分开来获取字符串。您可以使用regex或split进行此操作。建立一个循环,捕获字符串中的所有产品,并将它们放入一个数组或多维数组(取决于每个产品的数据量)

您可以根据需要设置字符串。只是要小心使用符号。可能一些simbol不会被数据库接受(不确定)

由于你没有提供任何代码,我也不能去


祝你好运。

我很高兴能提供一些提示:将数据保存在两个不同的表中并按用户id显示: 1.学习使用$u会话,如POST和GET;对于使用Dreamweaver INSERT server行为和隐藏字段插入的每个表,请确保通过以下方式捕获用户ID:

//1. in your page add hiddenfield to capture userID
         <?php echo $_SESSION['MM_Username']; ?>  //PHP to Caputure UserID
        <input name="level" type="hidden" id="level" value="<?php echo $_SESSION['MM_Username']; ?>" />

    //2. for other items create a recordset like product then also capture all items to first table and second tables like this:    

    <input name="level" type="hidden" id="level" value="<?php echo$row_passVar['accesslevel']; ?>" />
最后,请记住使用外键(FK)将两个表关联在一起,以生成所需的记录输出

希望这有帮助

//1. in your page add hiddenfield to capture userID
         <?php echo $_SESSION['MM_Username']; ?>  //PHP to Caputure UserID
        <input name="level" type="hidden" id="level" value="<?php echo $_SESSION['MM_Username']; ?>" />

    //2. for other items create a recordset like product then also capture all items to first table and second tables like this:    

    <input name="level" type="hidden" id="level" value="<?php echo$row_passVar['accesslevel']; ?>" />
1.SELECT *
FROM tb1, tb2
WHERE users.username=colname

Use the dreamweaver advanced recordset dialog box:
Create a variable like this:
Name: colname
Type: Text
Default Value:-1
RunTime value: $_SESSION['MM_username']