显示表A中的所有信息,如果一列行帐号匹配

显示表A中的所有信息,如果一列行帐号匹配

问题描述:

我有两个表,regtransreg表包含我所有用户的注册信息和trans表包含我所有用户的借记或信用信息。我想在每个用户页面上显示他们登录到其页面时的交易历史记录。所以我尝试使用帐号,但它并不完美。我希望每个用户在登录时都能看到他们的交易历史记录。显示表A中的所有信息,如果一列行帐号匹配

请记住,trans表包含大量信用卡或借记卡交易信息或具有类似帐户号的不同用户的历史记录。

CREATE TABLE `reg` (
    `UserID` int(200) NOT NULL, 
    `Firstname` varchar(200) NOT NULL, 
    `Lastname` varchar(200) NOT NULL, 
    `Middlename` varchar(200) NOT NULL, 
    `Gender` varchar(200) NOT NULL, 
    `Dob` varchar(200) NOT NULL, 
    `Email` varchar(200) NOT NULL, 
    `Phone` varchar(200) NOT NULL, 
    `Username` varchar(200) NOT NULL, 
    `Password` varchar(200) NOT NULL, 
    `Accounttype` varchar(200) NOT NULL, 
    `identificationtype` varchar(200) NOT NULL, 
    `Address` varchar(200) NOT NULL, 
    `Zipcode` varchar(200) NOT NULL, 
    `Cityname` varchar(200) NOT NULL, 
    `Country` varchar(200) NOT NULL, 
    `Accnumber` bigint(200) NOT NULL, 
    `Amount` varchar(200) NOT NULL, 
    `info` enum('YES','NO','','') NOT NULL, 
    `Status` enum('ADMIN','USER','','') NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

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

CREATE TABLE `trans` (
    `id_transfer` int(10) UNSIGNED NOT NULL, 
    `re_ln` varchar(200) NOT NULL, 
    `re_fn` varchar(200) NOT NULL, 
    `re_name` varchar(200) NOT NULL, 
    `re_number` varchar(200) NOT NULL, 
    `re_amount` varchar(200) NOT NULL, 
    `transfer_code` varchar(200) NOT NULL, 
    `routine_number` varchar(200) NOT NULL, 
    `swift_code` varchar(200) NOT NULL, 
    `Bank_name` varchar(200) NOT NULL, 
    `Bank_address` varchar(200) NOT NULL, 
    `City` varchar(200) NOT NULL, 
    `State` varchar(200) NOT NULL, 
    `Zipcode` varchar(200) NOT NULL, 
    `Country` varchar(200) NOT NULL, 
    `Pincode` varchar(200) NOT NULL, 
    `Transfer_id` varchar(200) NOT NULL, 
    `t_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `Statuss` enum('YES','NO','CANCEL','') NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

这里是显示的信息

require_once 'dbconfig.php'; 

    $stmt = $db_con->prepare("SELECT * FROM trans INNER JOIN reg ON reg.Accnumber = trans.Transfer_id "); 
    $stmt->execute(); 
    while($row=$stmt->fetch(PDO::FETCH_ASSOC)) 
    { 
     ?> 
     <tr> 
     <td height="38"><?php echo $row['re_name']; ?></td> 
     <td><?php echo $row['Bank_name']; ?></td> 
     <td><?php echo $row['re_number']; ?></td> 
     <td>$<?php echo $row['re_amount']; ?></td> 
     <td><?php echo $row['swift_code']; ?></td> 
     <td><?php echo $row['t_date']; ?></td> 
     <td align="center"> 
      <?php 
+0

我想,你已经在你的代码中完成了它。您只需在使用会话的查询中传递用户标识。 –

+0

不,reg中的账号与trans中的账号不一样。它正在挑选另一个类似于注册账号的账号,但两者都不相同。我有3042325018帐号在reg.Accnumber和3042325026在trans.Tranfer_id。 –

只是一个小的修改您的查询,并通过会话值的代码。举一个粗略的例子:

SELECT * FROM trans 
INNER JOIN reg 
ON reg.Accnumber = trans.Transfer_id 
WHERE USER_ID = SESSION["userId"]; 
+0

不能正常工作,请帮我看看我的会话代码 –

+0

谢谢你Chri85和AT-2017我已经做得很好,它正在工作 –

+0

我相信,与会话一起工作? –