【问题标题】:Saving data in to 2 separate tables and displaying it by userid将数据保存到 2 个单独的表中并按用户 ID 显示
【发布时间】:2014-08-26 06:22:33
【问题描述】:

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

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

我正在建立电子商务网站,一开始我到处寻找和学习万维网中的脚本如何建立“非常基本的商店”。 我有另一个产品表,其中包含产品 ID、产品名称、价格、类别、子类别、添加日期。

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

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

要添加和保存购物车,我知道我可以使用 mysql 查询 INSERT INTO 'savedcarhistoy' 但我不知道如何提取分配给用户的数据,不包括用户 ID,但产品信息他们保存以备后用......最好的方法是什么?有人会指出mysql查询语法吗?

任何帮助将不胜感激!

【问题讨论】:

    标签: php mysql sql database syntax


    【解决方案1】:

    很高兴我能提供一些提示:将数据保存在两个不同的表中并按用户 ID 显示: 1. 学习 $_SESSION 的使用,与 POST 和 GET 一样;对于您使用 Dreamweaver 插入服务器行为和隐藏字段的每个表,确保通过:::::::::::::::::::: 捕获用户 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']; ?>" />
    

    MySQL: 在您的记录集中添加一个变量来传递每个登录用户的 ID,以便将用户 ID 添加到发布到这些单独的不同表的所有产品项目中。

    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']
    

    最后记得用外键(FK)把两张表关联起来,生成你需要的记录输出愿望..

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      这是验证用户是用户后的会话代码。

                  <?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;
      }
      ?>
      

      所以我需要做的是,具有特定用户 ID 的会话用户能够保存他们的购物车,当他们回来时,他们可以点击链接并在那里找到他们的购物项目。所以为了保存数据,我会做这样的事情,但它是针对单独的产品。

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

      我的问题是如何将整个购物车信息添加到另一个表以及如何将购物车显示到特定的用户 ID。或者最好的方法是什么? 是否可以将整个购物车保存为 db 中的一列并通过 userID 显示?

      【讨论】:

        【解决方案3】:

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

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

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

        您可以随意设置字符串。请小心使用符号。也许有些符号不会被数据库接受(不确定)。

        由于您没有提供任何代码,我也无法使用它。

        祝你好运。

        【讨论】:

          【解决方案4】:

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

          根据我的理解,您希望将 user_idproduct_id 插入到表 savedcarthistory 中。

          然后您可以稍后使用 user_id 从 user 表中获取详细信息,并使用 product_id 从 product_table 中获取详细信息

          如下更改插入

          // 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获取user表和products表的详细信息

          【讨论】:

            猜你喜欢
            • 2013-01-26
            • 1970-01-01
            • 1970-01-01
            • 2019-10-24
            • 2021-05-07
            • 1970-01-01
            • 1970-01-01
            • 2016-11-06
            • 2015-02-26
            相关资源
            最近更新 更多