Я новичок в 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 проверяет, вошел ли пользователь в систему. Затем он возвращает идентификатор пользователя, который вошел в систему.
Попробуйте проверить строки уникальны. И добавить GROUP BY producten.product_id
на ваш запрос.
Вам не хватает ссылки с transactie Таблица. Итак, у вас есть Декартово соединение появляться.
Добавьте правильное где условие, чтобы это исправить.
Поскольку вы не предоставили никакой структуры таблиц, я не могу вам помочь больше, чем это!
на другом уровне, не используйте расширение MySQL, так как оно устарело!
Попробуйте добавить ключевое слово 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");