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

标签 php mysql foreign-keys relational-database

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

关系表:

useraccount > savedproduct < products

由于许多用户可以拥有许多产品,而许多产品可以有许多用户,因此我为中间创建了一个表,其中仅保存savedProductId、productId和user_id。

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

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

注意:请不要谈论任何有关注入(inject)等的事情,我将在一切解决后实现,谢谢。

$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>";
}

感谢您的每一点帮助。

最佳答案

如果我理解你的问题是正确的,你只需要对这 3 个表进行右连接

关于php - 使用外键从表中获取数据 PHP MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20457862/

相关文章:

java - 3层数据库。如何将 3 个实体相互关联?

sql - 外键条件的 PostgreSQL 检查约束

php - Laravel 按多态表上的列排序结果

php - 一个 SQL 查询中的多个计数

php - 数据库输出未显示。获取 else 语句

php - 当用户发布某些内容时,如何更改 mysql 时间戳的格式

MySQL 无法创建外键约束

php - mysql 和 php - 一次选择获得 3 个或更多表?

php - 选择值作为 json_encode 数据

mysql - 在 JQuery onchange 文本字段中获取数据库数据