Ik gebruik momenteel 3 verschillende primaire id's
In tabel "klantorder" "id" primaire AI (Klanten)
in tabel "invoice_order" "order_id" primaire AI (Facturen)
in tabel "invoice_order_item" "order_item_id" primaire AI (Invoer velden op de facturering)
Ik heb een pagina waarin alle klanten geladen worden in een lijst met een factuur knop -> create_invoice?id=(id klantorder)
Op deze factuur create pagina worden de klant gegevens geladen, en kan ik regels toevoegen en de prijs zoals hier onder
Als de factuur word opgeslagen krijgt deze een eigen "order_id" in "invoice_order" deze zelfde id waarde word ook ook opgeslagen in "invoice_order_item" "order_item_id" om de invoer tabellen + bedragen in op te slaan.
Alles werkt tot nu toe volledig zonder problemen, maar zoals Ariën al aangaf moeten er nog wel een aantal dingen gebeuren zoals query checks toevoegen om het systeem beter te maken.
Ik moet ook even gaan denken hoe ik op de klant pagina zelf een lijst kan invoegen met de facturen die op die naam staan, ik denk dat ik de klant id laat mee sturen naar de "invoice_order" en "invoice_order_item" in een aparte tabel en zo de facturen te voorschijn laat komen op de klant pagina (Dit is nu nog een factuur lijst)
Met twee verschillende velden in invoice_order die beiden PK en AutoIncrement zijn wordt het lastig. Een OrderID is bij jouw het factuurnummer? Kan je deze niet logischer programmeren met datum en oplopende nummering erin zonder AutoIncrement functie?
Het zullen dan 2 verschillende velden worden in tabel "invoice_order"
1 order_id die dan PK en AI zal hebben (create invoice maakt dan nieuwe regels aan)
2 user_id zonder PK of AI (Waarde van de klant ID zal "gekopieerd" worden en hier in geplaats worden)
Op deze manier krijgt elke factuur automatisch een oplopend getal maar word er bij elke factuur regel in de DB ook het klant id bijgeplaatst zodat ik die weer kan ophalen als ik een klant bekijk.
Top, ik ben nu bezig om iets te maken om de facturen (Als die beschikbaar zijn) te laten weergeven op de klanten pagina (Idee is om hier losse buttons te gaan gebruiken die dan door linken naar de factuur die bij deze klant hoort)
ik heb hier snel wat in elkaar gezet maar ik denk niet dat dit de juiste manier is
het moet dus niet 1 button worden maar 1 button per "match"
<?
$userid=$_GET['id'];
$id1 = "SELECT id FROM klantorder WHERE id = $userid";
$id2 = "SELECT order_id FROM Invoice_order";
$result = ($id1 == $id2)
?>
<?php $ret=mysqli_query($con,$result);
$cnt=1;
while($row=mysqli_fetch_array($ret))
{?>
<tr>
<td> <a href="edit-invoice.php?id=<?php echo $row['id'];?>" class="btn btn-primary btn-xs btn-mini">Factuur</a> </td>
<td>
</tr>
[size=xsmall]Toevoeging op 03/02/2022 17:47:41:[/size]
Opgelost!
met:
public function getInvoiceCustomer(){
$userid=$_GET['id'];
$sqlQuery = "
SELECT * FROM ".$this->invoiceOrderTable."
WHERE user_id = '$userid'";
return $this->getData($sqlQuery);
}
[size=xsmall]Toevoeging op 03/02/2022 18:34:15:[/size]
Inmiddels ook
die(mysqli_error($con))
toegevoegd aan het eind van de query je had idd gelijk Ariën met Jeanne d'Arc waarom pakt hij dit eigenlijk niet ? ik neem aan door de ' ?
En moet ik mij zorgen maken om SQL injection aangezien het systeem enkel door mij gebruikt gaat worden ? en het systeem "verborgen" is achter een inlog systeem ?
[size=xsmall]Toevoeging op 04/02/2022 00:08:04:[/size]
Ik ben toch maar aan de slag gegaan om sql injectie tegen te gaan.
Is dit de juiste manier ? ook kwa error handling ?