Ik denk dat ik delen zou kunnen hergebruiken, enerzijds om de code korter te maken en anderzijds om in een later stadium fouten te vermijden.
Het is eigenlijk 4 keer hetzelfde met kleine veranderingen.
Eerst kijk ik of de bestelling bestaat en daarna kijk ik of er in de bestelling ook orderregels staan.
De afhandeling is steeds net iets anders, maar 2 queries zijn nagenoeg hetzelfde met uitzondering op de waarde van de status.
Of maak ik het dan alleen maar onverzichtelijker?
Dit stuk herhaalt zich steeds weer muv de waarde bij status:
<?php
$bestellingscheckqry = "
SELECT
id,
ordernr
FROM
bestellingen
WHERE
klantnummer = ?
AND
status = '30'";
if(!$bestellingscheckstmt = $connectionwebshop->prepare($bestellingscheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$bestellingscheckstmt->bind_param('i', $kl_gegevens['kl_overzicht_klnr']);
$bestellingscheckstmt->execute();
$bestellingscheckstmt->bind_result($basket, $oldordernr);
$bestellingscheckstmt->store_result();
$checkbestellingrows = $bestellingscheckstmt->num_rows;
}
if($checkbestellingrows >= 1){
$bestelregelcheckqry ="
SELECT
productid
FROM
bestelregel
WHERE
bestelnummer = ?
AND
aantal != '0'
";
if(!$regelstmt = $connectionwebshop->prepare($bestelregelcheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$regelstmt->bind_param('i', $basket);
$regelstmt->execute();
$bestelregelresult = $regelstmt->get_result();
$rows = $bestelregelresult->num_rows;
}
if($rows >= 1){
$oldordermenu ='';
while ($bestellingscheckstmt->fetch()) {
$oldordermenu .='<a href="'.$templink.$langlink.$paginalink.'bestelling'.$winkelwagenlink.'bekijken'.$ordernrlink.$oldordernr.'">'.$oldordernr.'</a><br/>';
}
$bestellingscheckstmt->close();
}
?>
Dit is wat ik totaal heb gemaakt:
<?php
//let's check out if there is an active basket and if there are products in the basket
$bestellingscheckqry = "
SELECT
id
FROM
bestellingen
WHERE
klantnummer = ?
AND
status = '10'";
if(!$bestellingscheckstmt = $connectionwebshop->prepare($bestellingscheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$bestellingscheckstmt->bind_param('i', $kl_gegevens['kl_overzicht_klnr']);
$bestellingscheckstmt->execute();
$bestellingscheckstmt->bind_result($basket );
$bestellingscheckstmt->store_result();
$checkbestellingrows = $bestellingscheckstmt->num_rows;
$bestellingscheckstmt->fetch();
$bestellingscheckstmt->close();
}
if($checkbestellingrows == 1){
$bestelregelcheckqry ="
SELECT
productid
FROM
bestelregel
WHERE
bestelnummer = ?
AND
aantal != '0'
";
if(!$regelstmt = $connectionwebshop->prepare($bestelregelcheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$regelstmt->bind_param('i', $basket);
$regelstmt->execute();
$bestelregelresult = $regelstmt->get_result();
$rows = $bestelregelresult->num_rows;
}
if($rows >= 1){
$winkelwagenmenu ='<a href="'.$templink.$langlink.$paginalink.'winkelwagen'.$winkelwagenlink.'bekijken">Winkelwagen</a>';
}else{
$winkelwagenmenu ='Uw winkelwagen is nog leeg';
}
}else{
$winkelwagenmenu ='Uw winkelwagen is nog leeg';
}
$leftmenu .= '
<div>
<div class="heading1 wow fadeInDown" data-wow-duration="1s" data-wow-delay="0.1s">
<h2>Winkelwagen</h2>
'.$winkelwagenmenu.'
</div>
</div>';
//let's check out if there any orders waiting for processing
$bestellingscheckqry = "
SELECT
id,
ordernr
FROM
bestellingen
WHERE
klantnummer = ?
AND
status = '20'";
if(!$bestellingscheckstmt = $connectionwebshop->prepare($bestellingscheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$bestellingscheckstmt->bind_param('i', $kl_gegevens['kl_overzicht_klnr']);
$bestellingscheckstmt->execute();
$bestellingscheckstmt->bind_result($basket, $oldordernr);
$bestellingscheckstmt->store_result();
$checkbestellingrows = $bestellingscheckstmt->num_rows;
}
if($checkbestellingrows >= 1){
$bestelregelcheckqry ="
SELECT
productid
FROM
bestelregel
WHERE
bestelnummer = ?
AND
aantal != '0'
";
if(!$regelstmt = $connectionwebshop->prepare($bestelregelcheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$regelstmt->bind_param('i', $basket);
$regelstmt->execute();
$bestelregelresult = $regelstmt->get_result();
$rows = $bestelregelresult->num_rows;
}
if($rows >= 1){
$oldordermenu ='';
while ($bestellingscheckstmt->fetch()) {
$oldordermenu .='<a href="'.$templink.$langlink.$paginalink.'bestelling'.$winkelwagenlink.'bekijken'.$ordernrlink.$oldordernr.'">'.$oldordernr.'</a><br/>';
}
$bestellingscheckstmt->close();
}
$leftmenu .= '
<div>
<div class="heading1 wow fadeInDown" data-wow-duration="1s" data-wow-delay="0.1s">
<h2>Bestelling in behandeling</h2>
'.$oldordermenu.'
</div>
</div>';
}
//let's check out if there any orders waiting for approval of customer
$bestellingscheckqry = "
SELECT
id,
ordernr
FROM
bestellingen
WHERE
klantnummer = ?
AND
status = '30'";
if(!$bestellingscheckstmt = $connectionwebshop->prepare($bestellingscheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$bestellingscheckstmt->bind_param('i', $kl_gegevens['kl_overzicht_klnr']);
$bestellingscheckstmt->execute();
$bestellingscheckstmt->bind_result($basket, $oldordernr);
$bestellingscheckstmt->store_result();
$checkbestellingrows = $bestellingscheckstmt->num_rows;
}
if($checkbestellingrows >= 1){
$bestelregelcheckqry ="
SELECT
productid
FROM
bestelregel
WHERE
bestelnummer = ?
AND
aantal != '0'
";
if(!$regelstmt = $connectionwebshop->prepare($bestelregelcheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$regelstmt->bind_param('i', $basket);
$regelstmt->execute();
$bestelregelresult = $regelstmt->get_result();
$rows = $bestelregelresult->num_rows;
}
if($rows >= 1){
$oldordermenu ='';
while ($bestellingscheckstmt->fetch()) {
$oldordermenu .='<a href="'.$templink.$langlink.$paginalink.'bestelling'.$winkelwagenlink.'bekijken'.$ordernrlink.$oldordernr.'">'.$oldordernr.'</a><br/>';
}
$bestellingscheckstmt->close();
}
$leftmenu .= '
<div>
<div class="heading1 wow fadeInDown" data-wow-duration="1s" data-wow-delay="0.1s">
<h2>Bestelling wachtend op uw akkoord</h2>
'.$oldordermenu.'
</div>
</div>';
}
//let's check out if there any orders wich are finished
$bestellingscheckqry = "
SELECT
id,
ordernr
FROM
bestellingen
WHERE
klantnummer = ?
AND
status = '40'";
if(!$bestellingscheckstmt = $connectionwebshop->prepare($bestellingscheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$bestellingscheckstmt->bind_param('i', $kl_gegevens['kl_overzicht_klnr']);
$bestellingscheckstmt->execute();
$bestellingscheckstmt->bind_result($basket, $oldordernr);
$bestellingscheckstmt->store_result();
$checkbestellingrows = $bestellingscheckstmt->num_rows;
}
if($checkbestellingrows >= 1){
$bestelregelcheckqry ="
SELECT
productid
FROM
bestelregel
WHERE
bestelnummer = ?
AND
aantal != '0'
";
if(!$regelstmt = $connectionwebshop->prepare($bestelregelcheckqry)){
echo 'Fout in query: '.$connectionwebshop->error;
} else {
$regelstmt->bind_param('i', $basket);
$regelstmt->execute();
$bestelregelresult = $regelstmt->get_result();
$rows = $bestelregelresult->num_rows;
}
if($rows >= 1){
$oldordermenu ='';
while ($bestellingscheckstmt->fetch()) {
$oldordermenu .='<a href="'.$templink.$langlink.$paginalink.'bestelling'.$winkelwagenlink.'bekijken'.$ordernrlink.$oldordernr.'">'.$oldordernr.'</a><br/>';
}
$bestellingscheckstmt->close();
}
$leftmenu .= '
<div>
<div class="heading1 wow fadeInDown" data-wow-duration="1s" data-wow-delay="0.1s">
<h2>Afgeronde bestellingen</h2>
'.$oldordermenu.'
</div>
</div>';
}
?/>