2013-12-08 3 views
0

Я пытаюсь вывести продукт из таблицы продуктов, используя внешний ключ, который находится в другой таблице, потому что продукты затем сохраняются в учетной записи пользователя.Получение данных из таблицы с использованием внешних ключей PHP MySQL

реляционные таблицы:

useraccount > savedproduct < products 

Поскольку многие пользователи могут иметь много продуктов, и многие продукты могут иметь много пользователей, я составил таблицу для Inbetween, который содержит только savedProductId, ProductID и user_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>"; 

часть, где я пытаюсь вывести сохраненные продукты, связанные с идентификатором пользователя и т.д.:

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

Каждый бит помощи приветствуется.

ответ

0

Если я понял ваш вопрос правильно, вам нужно всего лишь right join по этим 3 столам.

+0

Посмотрите на это, и это похоже на правильный путь, спасибо за то, что помогли мне по правильному пути :) –

+0

вот и все :) пожалуйста, проголосуйте за мой ответ +1 :) – Stone

+0

Я пока не могу проголосовать , но приняли ответ :) –

Смежные вопросы