使用外键PHP MySQL从表中获取数据

时间:2013-12-08 19:23:45

标签: php mysql foreign-keys relational-database

我正在尝试使用另一个表中的外键从我的products表输出产品,因为产品会保存到用户帐户中。

关系表:

useraccount > savedproduct < products

由于许多用户可以拥有许多产品,并且许多产品可以拥有许多用户,因此我已经为中间组成了一个表,其中仅包含savedProductId,productId和user_id。

如果有意义的话,我想从仅附加了特定用户ID的savedproduct表中输出产品数据。

它实际上有效,但显示所有产品(重复两次),而不仅仅是保存产品中用户ID下的产品,我的代码在这里:

注意:请不要说任何关于注射等的事情,我会在实现完所有目标后再实施,谢谢。

$user_check=$_SESSION['login_user'];

$sqlCommand = "(SELECT * FROM userAccount WHERE email='$user_check')";
$query = mysqli_query($con,$sqlCommand) or die("Error: ".mysqli_error($con));
$column = mysqli_fetch_array($query);

if($column['admin'] != NULL){
    echo "<section class='userName'><h3>".$column['firstName']." ".$column['surname']."</h3></section>";
    echo "<section class='address'>".$column['addressLine1']."<br />".$column['addressLine2']."<br />".$column['county']."<br />".$column['country']."<br />".$column['postCode']."</section>";
    echo "<section class='email'><h3>".$column['email']."</h3></section>";
    echo "<section class='passwordUpdate'><a href='update.php?user_id=".$column['user_id']."'>Change Password</a></section>";
    echo "<section class='logout'><a href='extras/logoutProcess.php'>Logout</a></section>";
    echo "<hr />";
        </section>";

我尝试输出与用户ID等关联的已保存产品的部分:

}else{
    $userIdent=$column['user_id'];
    $sqlCommand = "SELECT savedProduct.user_id, product.productName, product.productId, product.productImg, product.price FROM savedProduct, product WHERE savedProduct.user_id=$userIdent LIMIT 2";
    $query = mysqli_query($con,$sqlCommand) or die("Error: ".mysqli_error($con));

    echo "<section class='userName'><h3>".$column['firstName']." ".$column['surname']."</h3></section>";
    echo "<section class='address'>".$column['addressLine1']."<br />".$column['addressLine2']."<br />".$column['county']."<br />".$column['country']."<br />".$column['postCode']."</section>";
    echo "<section class='email'><h3>".$column['email']."</h3></section>";
    echo "<section class='passwordUpdate'><a href='update.php?user_id=".$column['user_id']."'>Change Password</a></section>";
    echo "<section class='logout'><a href='extras/logoutProcess.php'>Logout</a></section>";
    echo "<hr />";

    echo '<section style="overflow:auto;height:400px;"><table cellpadding="0" cellspacing="0" border="0">
                            <tr>
                                    <th></th>
                                    <th>Product</th>
                                    <th>Price</th>
                            </tr>';
    while($savedP = mysqli_fetch_array($query)){
        echo "<tr>
                <td>
                    <a target='_self' href='fullProductInfo.php?productId=".$savedP['productId']."'>
                        <img src='http://www.littlepenguindesigns.co.uk/pages/CMX/images/products/".$savedP['productImg']."' alt='".$savedP['productName']."' width='180' height='150' border='0' />
                    </a>
                </td>
                <td><a target='_self' href='fullProductInfo.php?productId=".$savedP['productId']."'>".$savedP['productName']."</a></td>
                <td>&pound;".$savedP['price']."</td>
            </tr>";
    }
    echo "</table></section>";
}

赞赏每一点帮助。

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题是正确的,那么你只需要在这3张桌子上right join