Повторяющиеся результаты из MySQL

Я новичок в php, но я уже сделал несколько запросов для моего интернет-магазина.
У меня теперь есть небольшая проблема с выставлением счета.
Я пытаюсь поместить данные счета-фактуры из базы данных в таблицу на моем веб-сайте, но она дублируется.

Product_id | Product name | amount | price | subtotal|
2            kippensoep     1         €3      €3
2            kippensoep     1         €3      €3
2            kippensoep     1         €3      €3
4            Loempia's      1        €10     €10
4            Loempia's      1        €10     €10
4            Loempia's      1        €10     €10
4            Loempia's      1        €10     €10

Итак, как вы можете видеть, product_id , product_names дублируются.
Это странно, потому что в базе данных оно не дублируется.
Вот код php.

<?php
$maxfac1 = mysql_fetch_array(mysql_query("SELECT MAX(transactie.factuur_id) FROM transactie , account WHERE transactie.id = $session_user_id"));

unset ($maxfac1[0]);
$maxfactuur_id = implode (" ",$maxfac1);

$productinfo = mysql_query("SELECT * FROM producten, transactie, factuur WHERE producten.product_id = factuur.product_id AND factuur.factuur_id = $maxfactuur_id AND factuur.gebruikers_id= $session_user_id");

$totaal=0;
$subtotaal=0;

while ($row = mysql_fetch_array($productinfo))
{
?>
<tr>
<td><?php echo $row['product_id']?></td>
<td><?php echo $row['name'] ?></td>
<td><?php echo $row['amount'] ?></td>
<td>€<?php echo $row['price'] ?></td>
<?php $subtotaal = ($row['price']*$row['amount']);?>
<td>€<?php echo "$subtotaal" ;$totaal+= $subtotaal;?></td>
</tr>

<?php
}
?>
?>

Я надеюсь, что вы, ребята, можете помочь мне и найти решение.

РЕДАКТИРОВАТЬ
session_user_id проверяет, вошел ли пользователь в систему. Затем он возвращает идентификатор пользователя, который вошел в систему.

0

Решение

Попробуйте проверить строки уникальны. И добавить GROUP BY producten.product_id на ваш запрос.

0

Другие решения

Вам не хватает ссылки с transactie Таблица. Итак, у вас есть Декартово соединение появляться.

Добавьте правильное где условие, чтобы это исправить.

Поскольку вы не предоставили никакой структуры таблиц, я не могу вам помочь больше, чем это!

редактировать

на другом уровне, не используйте расширение MySQL, так как оно устарело!

2

Попробуйте добавить ключевое слово DISTINCT.

$productinfo = mysql_query("SELECT DISTINCT * FROM producten, transactie, factuur WHERE producten.product_id = factuur.product_id AND factuur.factuur_id = $maxfactuur_id AND factuur.gebruikers_id= $session_user_id");
1
По вопросам рекламы [email protected]