O nome do produto está sendo inserido de forma repetitiva no Mysql
09/02/2020
0
$this->start(); foreach($this->details() as $product_name){ $product = $product_name['product_name']; } // Insert the items if ($pass) { $this->details(); $this->orderID = $this->lastID; $sql = "INSERT INTO `orders_items` (`order_id`, `product_id`, `quantity`, `product_name`) VALUES "; $cond = []; foreach ($_SESSION['cart'] as $id=>$qty) { $sql .= "(?, ?, ?, ?),"; array_push($cond, $this->orderID, $id, $qty, $product); } $sql = substr($sql, 0, -1) . ";"; $pass = $this->exec($sql, $cond); }
André
Posts
10/02/2020
Kleber Santos
Sugiro você pegar um papel e anotar o valor das variáveis linha por linha respeitando as validações e loops, assim você consegue entender o que está acontecendo no teu código.
10/02/2020
Kleber Santos
Sugiro você pegar um papel e anotar o valor das variáveis linha por linha respeitando as validações e loops, assim você consegue entender o que está acontecendo no teu código.
Eu não lembro muito bem a sintaxe do PHP, más acredito que você vai ter que montar um array de objetos mais ou menos assim:
produtos: [
{ order_id= 1,
product_id= 2
quantity = 3,
product_name= nome1
},
{ order_id= 2,
product_id= 2
quantity = 3,
product_name= nome2
},
{ order_id= 3,
product_id= 2
quantity = 3,
product_name= nome3
}
]
depois fazer um foreach percorrendo o array de produtos
foreach ($produtos as $produto) {
echo produto
}
10/02/2020
André Luis
if ($pass) { $this->details(); foreach ($this->details() as $nome) { $product_name = $nome[$id]['product_name']; } $this->orderID = $this->lastID; $sql = "INSERT INTO `orders_items` (`order_id`, `product_id`, `quantity`, `product_name`) VALUES "; $cond = []; foreach ($_SESSION['cart'] as $id=>$qty) { $sql .= "(?, ?, ?, ?),"; array_push($cond, $this->orderID, $id, $qty, $product_name); } $sql = substr($sql, 0, -1) . ";"; $pass = $this->exec($sql, $cond); }
11/02/2020
Kleber Santos
if ($pass) { $this->details(); foreach ($this->details() as $nome) { $product_name = $nome[$id]['product_name']; } $this->orderID = $this->lastID; $sql = "INSERT INTO `orders_items` (`order_id`, `product_id`, `quantity`, `product_name`) VALUES "; $cond = []; foreach ($_SESSION['cart'] as $id=>$qty) { $sql .= "(?, ?, ?, ?),"; array_push($cond, $this->orderID, $id, $qty, $product_name); } $sql = substr($sql, 0, -1) . ";"; $pass = $this->exec($sql, $cond); }
foreach ($_SESSION['cart'] as $id=>$qty) {
$sql .= "(?, ?, ?, ?),";
array_push($cond, $this->orderID, $id, $qty, $product_name);
}
o loop do foreach está assim:
id qty $product_name
0 qty[0] $product_name[0]
1 qty[1] $product_name[0]
2 qty[2] $product_name[0]
3 qty[3] $product_name[0]
Percebeu que você não está percorrendo o array de produtos?
11/02/2020
André Luis
if ($pass) { $this->details(); foreach ($this->details() as $nome) { $product_name = $nome[$id]['product_name']; } $this->orderID = $this->lastID; $sql = "INSERT INTO `orders_items` (`order_id`, `product_id`, `quantity`, `product_name`) VALUES "; $cond = []; foreach ($_SESSION['cart'] as $id=>$qty) { $sql .= "(?, ?, ?, ?),"; array_push($cond, $this->orderID, $id, $qty, $product_name); } $sql = substr($sql, 0, -1) . ";"; $pass = $this->exec($sql, $cond); }
foreach ($_SESSION['cart'] as $id=>$qty) {
$sql .= "(?, ?, ?, ?),";
array_push($cond, $this->orderID, $id, $qty, $product_name);
}
o loop do foreach está assim:
id qty $product_name
0 qty[0] $product_name[0]
1 qty[1] $product_name[0]
2 qty[2] $product_name[0]
3 qty[3] $product_name[0]
Percebeu que você não está percorrendo o array de produtos?
Poderia me dar um exemplo de como ficaria o código corretamente?
14/02/2020
Kleber Santos
if ($pass) { $this->details(); foreach ($this->details() as $nome) { $product_name = $nome[$id]['product_name']; } $this->orderID = $this->lastID; $sql = "INSERT INTO `orders_items` (`order_id`, `product_id`, `quantity`, `product_name`) VALUES "; $cond = []; foreach ($_SESSION['cart'] as $id=>$qty) { $sql .= "(?, ?, ?, ?),"; array_push($cond, $this->orderID, $id, $qty, $product_name); } $sql = substr($sql, 0, -1) . ";"; $pass = $this->exec($sql, $cond); }
foreach ($_SESSION['cart'] as $id=>$qty) {
$sql .= "(?, ?, ?, ?),";
array_push($cond, $this->orderID, $id, $qty, $product_name);
}
o loop do foreach está assim:
id qty $product_name
0 qty[0] $product_name[0]
1 qty[1] $product_name[0]
2 qty[2] $product_name[0]
3 qty[3] $product_name[0]
Percebeu que você não está percorrendo o array de produtos?
Poderia me dar um exemplo de como ficaria o código corretamente?
Faça um echo em $this->details() e também em $_SESSION['cart'], e envie aki
Clique aqui para fazer login e interagir na Comunidade :)