var_dump geeft NULL aan, maar die zou pas een value hebben als er op een knop word gedrukt en $_POST in werking word gezet -> invoice.php
ik heb de var_dump zo toegevoegd dat is prima lijkt mij:
if(isset($_POST['submit']))
{
$invoice->saveInvoice($_POST);
header("refresh:1;url=edit_invoice.php?update_id=$lastInsertId");
}
echo '<pre>';
var_dump($lastInsertId);
echo '</pre>';
?>
Hierbij de SQL dump (Adressen en namen zijn fictief aantal erin laten staan)
-- phpMyAdmin SQL Dump
-- version 4.9.5
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Gegenereerd op: 02 feb 2022 om 21:43
-- Serverversie: 10.3.24-MariaDB-cll-lve
-- PHP-versie: 5.5.38
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `u84600p79297_crm`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `admin`
--
CREATE TABLE `admin` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL DEFAULT '',
`password` varchar(255) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Gegevens worden geëxporteerd voor tabel `admin`
--
INSERT INTO `admin` (`id`, `name`, `password`) VALUES
(1, 'admin', 'admin');
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `invoice_order`
--
CREATE TABLE `invoice_order` (
`order_id` int(11) NOT NULL,
`order_date` date NOT NULL DEFAULT current_timestamp(),
`order_receiver_name` varchar(250) NOT NULL,
`straatt` varchar(255) CHARACTER SET swe7 NOT NULL,
`order_receiver_address` text NOT NULL,
`telefoonn` varchar(255) CHARACTER SET swe7 NOT NULL,
`emaill` varchar(255) NOT NULL,
`order_total_before_tax` decimal(10,2) NOT NULL,
`order_total_tax` decimal(10,2) NOT NULL,
`order_tax_per` varchar(250) NOT NULL,
`order_total_after_tax` double(10,2) NOT NULL,
`order_amount_paid` decimal(10,2) NOT NULL,
`order_total_amount_due` decimal(10,2) NOT NULL,
`note` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden geëxporteerd voor tabel `invoice_order`
--
INSERT INTO `invoice_order` (`order_id`, `order_date`, `order_receiver_name`, `straatt`, `order_receiver_address`, `telefoonn`, `emaill`, `order_total_before_tax`, `order_total_tax`, `order_tax_per`, `order_total_after_tax`, `order_amount_paid`, `order_total_amount_due`, `note`) VALUES
(740, '2022-02-02', 'Piet Post', '', 'Grachtensingel 80, 8472 DD Utrecht', '064644646', '[email protected]', '0.00', '0.00', '', 0.00, '0.00', '0.00', 'gsdfg'),
(741, '2022-02-02', 'Karel Vries', '', 'Karel Klapstraat, 98, 3829 DD Amsterdam', '064578854121', '[email protected]', '0.00', '0.00', '', 0.00, '0.00', '0.00', 'dfgh');
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `invoice_order_item`
--
CREATE TABLE `invoice_order_item` (
`order_item_id` int(11) NOT NULL,
`order_id` int(11) NOT NULL,
`item_code` varchar(250) NOT NULL,
`item_name` varchar(250) NOT NULL,
`order_item_quantity` decimal(10,2) NOT NULL,
`order_item_price` decimal(10,2) NOT NULL,
`order_item_final_amount` decimal(10,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden geëxporteerd voor tabel `invoice_order_item`
--
INSERT INTO `invoice_order_item` (`order_item_id`, `order_id`, `item_code`, `item_name`, `order_item_quantity`, `order_item_price`, `order_item_final_amount`) VALUES
(4378, 2, '13555', 'Face Mask', '1.00', '41.00', '41.00'),
(4379, 2, '34', 'mobile', '1.00', '41.00', '41.00'),
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `invoice_user`
--
CREATE TABLE `invoice_user` (
`id` int(11) NOT NULL,
`email` varchar(100) NOT NULL,
`password` varchar(100) NOT NULL,
`first_name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`mobile` bigint(20) NOT NULL,
`address` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden geëxporteerd voor tabel `invoice_user`
--
INSERT INTO `invoice_user` (`id`, `email`, `password`, `first_name`, `last_name`, `mobile`, `address`) VALUES
(123456, '[email protected]', '1223345', 'aaaaadddmiiiin', '', 12345678912, 'New Delhi 110096 India.');
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `klantorder`
--
CREATE TABLE `klantorder` (
`id` int(11) NOT NULL,
`type` varchar(255) CHARACTER SET swe7 DEFAULT NULL,
`naam` varchar(255) DEFAULT NULL,
`straat` varchar(255) CHARACTER SET swe7 NOT NULL,
`adres` varchar(255) CHARACTER SET swe7 DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`telefoon` varchar(255) DEFAULT NULL,
`status` varchar(255) DEFAULT NULL,
`notitie` varchar(500) DEFAULT NULL,
`imei` varchar(255) DEFAULT NULL,
`merk` varchar(255) CHARACTER SET swe7 NOT NULL,
`toestel` varchar(255) DEFAULT NULL,
`datum` date DEFAULT current_timestamp(),
`klacht` varchar(255) DEFAULT NULL,
`image_url` varchar(255) DEFAULT NULL,
`image_url2` varchar(255) DEFAULT NULL,
`image_url3` varchar(255) DEFAULT NULL,
`image_url4` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden geëxporteerd voor tabel `klantorder`
--
INSERT INTO `klantorder` (`id`, `type`, `naam`, `straat`, `adres`, `email`, `telefoon`, `status`, `notitie`, `imei`, `merk`, `toestel`, `datum`, `klacht`, `image_url`, `image_url2`, `image_url3`, `image_url4`) VALUES
(1, 'Reparatie', 'Karel Kachel', '', 'Karel Klapstraat, 98, 3829 DD Amsterdam', '[email protected]', '064578854121', 'Gerepareerd', 'Scherm vervangen', '1561615165156', 'Apple', 'Iphone X', '2022-01-27', 'Scherm gebarsten', 'IMG-61f7ff3e2c7807.64653209.png', 'IMG-61fa7d2aa32de6.85503414.png', 'IMG-61f4a07b19b7f5.71220965.jpg', 'IMG-61f4a089091ed0.91107611.jpg'),
--
-- Indexen voor geëxporteerde tabellen
--
--
-- Indexen voor tabel `admin`
--
ALTER TABLE `admin`
ADD PRIMARY KEY (`id`);
--
-- Indexen voor tabel `invoice_order`
--
ALTER TABLE `invoice_order`
ADD PRIMARY KEY (`order_id`);
--
-- Indexen voor tabel `invoice_order_item`
--
ALTER TABLE `invoice_order_item`
ADD PRIMARY KEY (`order_item_id`);
--
-- Indexen voor tabel `invoice_user`
--
ALTER TABLE `invoice_user`
ADD PRIMARY KEY (`id`);
--
-- Indexen voor tabel `klantorder`
--
ALTER TABLE `klantorder`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT voor geëxporteerde tabellen
--
--
-- AUTO_INCREMENT voor een tabel `admin`
--
ALTER TABLE `admin`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
--
-- AUTO_INCREMENT voor een tabel `invoice_order`
--
ALTER TABLE `invoice_order`
MODIFY `order_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=742;
--
-- AUTO_INCREMENT voor een tabel `invoice_order_item`
--
ALTER TABLE `invoice_order_item`
MODIFY `order_item_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4484;
--
-- AUTO_INCREMENT voor een tabel `invoice_user`
--
ALTER TABLE `invoice_user`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=123457;
--
-- AUTO_INCREMENT voor een tabel `klantorder`
--
ALTER TABLE `klantorder`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=38;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
[size=xsmall]
Toevoeging op 02/02/2022 23:00:07:[/size]
Ik heb net even beter gekeken dit is iets meer code
public function saveInvoice($POST) {
$sqlInsert = "
INSERT INTO ".$this->invoiceOrderTable."(user_id, order_receiver_name, order_receiver_address, straatt, telefoonn, emaill, order_total_before_tax, order_total_tax, order_tax_per, order_total_after_tax, order_amount_paid, order_total_amount_due, note)
VALUES ('".$POST['userId']."', '".$POST['companyName']."', '".$POST['address']."', '".$POST['straat']."', '".$POST['telefoon']."', '".$POST['email']."', '" .$POST['subTotal']."', '".$POST['taxAmount']."', '".$POST['taxRate']."', '".$POST['totalAftertax']."', '".$POST['amountPaid']."', '".$POST['amountDue']."', '".$POST['notes']."')";
mysqli_query($this->dbConnect, $sqlInsert);
$lastInsertId = mysqli_insert_id($this->dbConnect);
for ($i = 0; $i < count($POST['productCode']); $i++) {
$sqlInsertItem = "
INSERT INTO ".$this->invoiceOrderItemTable."(order_id, item_code, item_name, order_item_quantity, order_item_price, order_item_final_amount)
VALUES ('".$lastInsertId."', '".$POST['productCode'][$i]."', '".$POST['productName'][$i]."', '".$POST['quantity'][$i]."', '".$POST['price'][$i]."', '".$POST['total'][$i]."')";
mysqli_query($this->dbConnect, $sqlInsertItem);
}
}
In invoice.php word de id waard die in invoice_order tabel gegenereerd word "gecloond" naar invoice_order_item tabel
de
$lastInsertId = mysqli_insert_id($this->dbConnect);
werkt dus wel volledig in invoice.php maar niet als invoice.php geinclude word op create_invoice
de functie zelf werkt dus wel volledig zonder problemen