ik heb ooit een keer een heel mooi boekhoudscript gemaakt en deze moet nu een beetje aangepast worden
eigelijk heel veel

het is van jaren allemaal hardcoded in elkaar gezet en eigenlijk bijna geen gebruik van functies

ik heb dus op heel veel paginas 1 en dezelfde code staan die eigenlijk gewoon in een functie zouden moeten

maar op 1 of andere manier weet ik niet meer hoe ik meerdere outputs krijg

input is datum, accountid, userid

output is een hele waslijst
die ik dus individueel moet kunnen opvragen indien dit zou kunnen met een functie
ik zal hier ff een voorbeeld geven van 1 van de codes die er nu in staan





$sqldranken = "SELECT * FROM systeem_invoertotaal WHERE account='$accountid' AND id_user='$userid' AND soort='dranken' AND invoer_over='$datum' ORDER BY id ASC";
$resultaatdranken = $db->sql_query($sqldranken) or die(mysqli_error());
							

$eindtotaaldrankenbtwlaagafgerond = '0';
$eindtotaaldrankenbtwhoogafgerond = '0';

while($omzetdranken = mysqli_fetch_assoc($resultaatdranken)){
$btwsoort = ''.$omzetdranken['btwhoogte'].'';	
															
if($btwsoort == btwlaag) {
$omzetdrankenbtwlaag = mysqli_fetch_array($db->sql_query("SELECT * FROM systeem_invoertotaal WHERE account='$accountid' AND id='$omzetdranken[id]' AND id_dame='$userid' AND soort='dranken' AND btwhoogte='btwlaag' AND invoer_over='$datum';"));

$totaaldrankenbtwlaagafgerond = $omzetdrankenbtwlaag[aantal] * $omzetdrankenbtwlaag[bedrag];												$totaaldrankenbtwhoogafgerond = '0';
												
}
elseif($btwsoort == btwhoog) {
$omzetdrankenbtwhoog = mysqli_fetch_array($db->sql_query("SELECT * FROM systeem_invoertotaal WHERE account='$accountid' AND id='$omzetdranken[id]' AND id_dame='$userid' AND soort='dranken' AND btwhoogte='btwhoog' AND invoer_over='$datum';"));

$totaaldrankenbtwhoogafgerond = $omzetdrankenbtwhoog[aantal] * $omzetdrankenbtwhoog[bedrag];
$totaaldrankenbtwlaagafgerond = '0';
}
else {
$totaaldrankenbtwlaagafgerond = '0';
$totaaldrankenbtwhoogafgerond = '0';
		
}

$eindtotaaldrankenbtwlaagafgerond = $eindtotaaldrankenbtwlaagafgerond + $totaaldrankenbtwlaagafgerond;
$eindtotaaldrankenbtwhoogafgerond = $eindtotaaldrankenbtwhoogafgerond + $totaaldrankenbtwhoogafgerond;							
}




dit is maar een klein stukje maar ik moet gewoon weer ff snappen hoe ik 2 outputs uit een functie krijg
of meerdere

:)

mag ook iets anders zijn als ik het maar op verschillende plekken kan gebruiken
ik zou denken aan een class als je meerdere var

<?php

class xyz
{
public $a;
public $b;

public function berekening_dranken($in1,$in2,$in3)
{
$this->a = 10;
$this->b = 100;
}

}
?>
Ivo P op 17/03/2020 12:38:44

ik zou denken aan een class als je meerdere var

<?php

class xyz
{
public $a;
public $b;

public function berekening_dranken($in1,$in2,$in3)
{
$this->a = 10;
$this->b = 100;
}

}
?>


intressant, en hoe zou ik dit dan moeten opvragen?
de outputs dan zeg maar

want in mijn hoofd zouden er dan bv eventueel 5 functies in deze gehele class komen
en elke functie zou dan ongeveer 10 outputs krijgen die ik dus doormiddel van een var zou willen krijgen.

zoals ik al zei ik ben een noob hierin

geef mij een SELECT * FROM en ik maak elke output die ik nodig heb maar van functies en classes heb ik geen kaas gegeten


en dit is dus de tekentafel


Nee, dit is een hapklare brok code waar je de techniek mee kunt leren.
Dat is niet de tekentafel. Het maakt niet uit welke techniek je gaat gebruiken.
Je systeem moet dusdanig slim in elkaar zitten dat het logisch is.

EDIT

Dit soort berekeningen kan de database zelf, dat moet jij helemaal niet hardcoded willen doen.
Dus een SELECT * FROM is eigenlijk al helemaal verkeerd.

En dat bedoel ik dus met naar de tekentafel gaan.
Bart V B op 17/03/2020 12:49:20


en dit is dus de tekentafel


Nee, dit is een hapklare brok code waar je de techniek mee kunt leren.
Dat is niet de tekentafel. Het maakt niet uit welke techniek je gaat gebruiken.
Je systeem moet dusdanig slim in elkaar zitten dat het logisch is.


zit heel slim in elkaar maar het gaat mij nu even om hoe dat met functies werkt
ik ga niet mijn gehele code hier volspammen want dat is best groot

ik ben nu gewoon aan het leren hoe dit werkt en of ik het kan gebruiken

deze hele aanpassing naar eventueel functies of classes ligt dus bij mij op tekentafel
als ik outputs krijg dan ga ik hier code aan toevoegen enz net zolang tot ik mijn bestaande outputs weer werkent heb

ik wil proberen zoveel mogelijk los te trekken van elkaar indien mogelijk
zodat het allemaal lekker overzichtelijk is


[size=xsmall]Toevoeging op 17/03/2020 12:56:49:[/size]

Dit soort berekeningen kan de database zelf, dat moet jij helemaal niet hardcoded willen doen.
Dus een SELECT * FROM is eigenlijk al helemaal verkeerd.

hoe laat ik een database dat allemaal berekenen ? en dan mij een output geven ?

Simpel voorbeeld:

SELECT winkel, (aantal - verkocht) AS totaal  FROM producten WHERE userid = 1;

echo $result['winkel'].' Heeft '. $result['totaal'].' verkocht.';

aangezien hier nogsteeds niet begrepen wordt dat ik geen expert ben
laat ik hier de sql zien

als iemand voor mij een goede oplossing heeft hoor ik het graag




CREATE TABLE `systeem_invoertotaal` (
  `account` int(11) DEFAULT NULL,
  `id` int(11) NOT NULL,
  `id_user` int(11) DEFAULT NULL,
  `naam` varchar(64) NOT NULL,
  `onbelaste_onkosten` text,
  `facilitaire_diensten` text,
  `percentage` text,
  `btwhoog` text,
  `btwlaag` text,
  `loonbelasting` text,
  `zfwpremie` text,
  `geforceerd` enum('-','yes','no') NOT NULL DEFAULT '-',
  `soort` enum('belastingen','facilitaire_diensten','dagdeel','heffing','zvw','tarieven','diensten','baden','dranken','entree') NOT NULL,
  `omschrijving` text,
  `aantal` text,
  `bedrag` text,
  `btwhoogte` enum('-','btwhoog','btwlaag') NOT NULL DEFAULT '-',
  `deel_dame` text,
  `titel` text,
  `datum_invoer` datetime DEFAULT NULL,
  `invoer_over` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


INSERT INTO `systeem_invoertotaal` (`account`, `id`, `id_user`, `werknaam`, `onbelaste_onkosten`, `facilitaire_diensten`, `percentage`, `btwhoog`, `btwlaag`, `loonbelasting`, `zfwpremie`, `geforceerd`, `soort`, `omschrijving`, `aantal`, `bedrag`, `btwhoogte`, `deel_dame`, `titel`, `datum_invoer`, `invoer_over`) VALUES
(43, 162343, 24, 'naam1', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 01:23:24', '2020-03-13'),
(43, 162344, 24, 'naam1', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '2', '70', 'btwhoog', '-', '', '2020-03-14 01:23:24', '2020-03-13'),

(43, 162348, 26, 'naam2', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 01:24:03', '2020-03-13'),
(43, 162349, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '1', '70', 'btwhoog', '-', '', '2020-03-14 01:24:03', '2020-03-13'),
(43, 162350, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '45', '1', '100', 'btwhoog', '-', '', '2020-03-14 01:24:03', '2020-03-13'),
(43, 162351, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-14 01:24:03', '2020-03-13'),

(43, 162355, 34, 'naam3', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 01:24:27', '2020-03-13'),
(43, 162356, 34, 'naam3', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '1', '70', 'btwhoog', '-', '', '2020-03-14 01:24:27', '2020-03-13'),

(43, 162360, 77, 'naam4', '20', '', '40', '21', '9', '19', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 01:24:55', '2020-03-13'),
(43, 162361, 77, 'naam4', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '2', '120', 'btwhoog', '-', '', '2020-03-14 01:24:55', '2020-03-13'),

(43, 162365, 111, 'naam5', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 01:25:24', '2020-03-13'),
(43, 162366, 111, 'naam5', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '1', '70', 'btwhoog', '-', '', '2020-03-14 01:25:24', '2020-03-13'),

(43, 162370, 119, 'naam6', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 01:26:25', '2020-03-13'),
(43, 162371, 119, 'naam6', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '3', '70', 'btwhoog', '-', '', '2020-03-14 01:26:25', '2020-03-13'),

(43, 162375, 130, 'naam7', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 01:27:17', '2020-03-13'),
(43, 162376, 130, 'naam7', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '2', '70', 'btwhoog', '-', '', '2020-03-14 01:27:17', '2020-03-13'),

(45, 162380, 2, 'naam1', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 07:48:18', '2020-03-13'),
(45, 162381, 2, 'naam1', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '1', '75', 'btwhoog', '-', '', '2020-03-14 07:48:18', '2020-03-13'),

(45, 162385, 3, 'naam2', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 07:48:31', '2020-03-13'),
(45, 162386, 3, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '2', '75', 'btwhoog', '-', '', '2020-03-14 07:48:31', '2020-03-13'),

(45, 162390, 5, 'naam3', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 07:48:46', '2020-03-13'),
(45, 162391, 5, 'naam3', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '2', '75', 'btwhoog', '-', '', '2020-03-14 07:48:46', '2020-03-13'),

(45, 162395, 31, 'naam4', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 07:49:17', '2020-03-13'),
(45, 162396, 31, 'naam4', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '140', 'btwhoog', '-', '', '2020-03-14 07:49:17', '2020-03-13'),

(45, 162400, 87, 'naam5', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-14 07:50:03', '2020-03-13'),
(45, 162401, 87, 'naam5', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '2', '75', 'btwhoog', '-', '', '2020-03-14 07:50:03', '2020-03-13'),

(43, 162405, 26, 'naam2', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-15 01:02:30', '2020-03-14'),
(43, 162406, 26, 'naam2', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-15 01:02:30', '2020-03-14'),

(43, 162410, 34, 'naam3', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-15 01:03:28', '2020-03-14'),
(43, 162411, 34, 'naam3', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '1', '70', 'btwhoog', '-', '', '2020-03-15 01:03:28', '2020-03-14'),

(43, 162415, 37, 'naam8', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-15 01:03:58', '2020-03-14'),
(43, 162416, 37, 'naam8', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '2', '70', 'btwhoog', '-', '', '2020-03-15 01:03:58', '2020-03-14'),
(43, 162417, 37, 'naam8', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '3', '120', 'btwhoog', '-', '', '2020-03-15 01:03:58', '2020-03-14'),

(43, 162421, 111, 'naam5', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-15 01:04:27', '2020-03-14'),
(43, 162422, 111, 'naam5', '-', '-', '-', '-', '-', '-', '-', '-', 'baden', 'Jacuzzi', '1', '20.00', 'btwhoog', '10.00', '', '2020-03-15 01:04:27', '2020-03-14'),
(43, 162423, 111, 'naam5', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '2', '70', 'btwhoog', '-', '', '2020-03-15 01:04:27', '2020-03-14'),
(43, 162424, 111, 'naam5', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-15 01:04:27', '2020-03-14'),

(43, 162428, 119, 'naam6', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-15 01:05:06', '2020-03-14'),
(43, 162429, 119, 'naam6', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-15 01:05:06', '2020-03-14'),

(43, 162433, 130, 'naam7', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-15 01:05:35', '2020-03-14'),
(43, 162434, 130, 'naam7', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-15 01:05:35', '2020-03-14'),

(43, 162438, 136, 'naam9', '20', '', '40', '21', '9', '8', '5.70', '-', 'belastingen', '-', '-', '-', '-', '-', NULL, '2020-03-15 01:06:17', '2020-03-14'),
(43, 162439, 136, 'naam9', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '30', '1', '70', 'btwhoog', '-', '', '2020-03-15 01:06:17', '2020-03-14'),
(43, 162440, 136, 'naam9', '-', '-', '-', '-', '-', '-', '-', '-', 'tarieven', '60', '1', '120', 'btwhoog', '-', '', '2020-03-15 01:06:17', '2020-03-14'),

(45, 162441, 9999, 'bedrijf', '', '', NULL, '21', '9', '', '', '-', 'belastingen', 'entree', '-', '-', '-', '-', NULL, '2020-03-16 14:04:31', '2020-03-14'),
(45, 162442, 9999, 'bedrijf', '-', '-', NULL, '-', '-', '-', '-', '-', 'entree', 'entree', '2', '75', 'btwhoog', '0.00', NULL, '2020-03-16 14:04:31', '2020-03-14');



dit is een deel van invoeren van een aantal welness centre

ik moet met deze gegevens dus een gehele loon specificatie per dag, maand ,jaar

per account los
per gebruiker los
alle gebruikers enz bij elkaar
enz enz

als iemand mij zonder chineese talen enz hier een goed oplossing voor heeft hoor ik het graag

het gehele script en berekening moet binnen 10 sec geladen zijn ongeacht of het nou voor een dag is of 7 jaar

En kwestie van voorwaarden aan de SQL toevoegen.
Ivo P op 17/03/2020 12:38:44

ik zou denken aan een class als je meerdere var

<?php

class xyz
{
public $a;
public $b;

public function berekening_dranken($in1,$in2,$in3)
{
$this->a = 10;
$this->b = 100;
}

}
?>


hi Ivo P
ik heb ff op internet wat meer info over classes opgezocht en inderdaad dit zou in zijn geheel voornamelijk, voor de grotere berekenings pagina wel goed zijn denk ik

echter vroeg ik mij af kan ik hiermee dan ook bv 1 van de functies los benaderen of wordt altijd
de gehele class opgeroepen?

en als ik een database connectie erin wil moet ik dit los op deze pagina doen of neemt hij dit mij vanuit de pagina waar ik de pagina van mijn class include?




normaal kan een database rekenen, maar aangezien jij TEXT als kolomtype voor zo'n beetje alles hebt gebruikt.....


"Aantal" is een getal. Meestal een geheel getal. 1, 4, 100 of 65000
INTEGER is dan de aangewezen kolomsoort.

Aantal + 1 zou dan 2, 5, 101 of 65001 opleveren.

In jouw geval kun je zo'n 65000 tekens kwijt in de kolom Aantal.

Dus jouw database kan in Aantal opslaan "een stuk of vijf, maar het kunnen er ook 12 zijn"

Omdat je database er nu vanuit gaat dat het een string is, kan hij er niet meer mee rekenen.

Dat is: tekentafel.
Bouw een database op op basis van wat je er in nodig hebt.
Niet "TEXT" want dan werkt mijn insert-query.

Een database is de basis van je applicatie. Het is geen kladpapier.

Ik heb een opdracht gedaan bij een bedrijf waar ze echt van alles doen aan misbruik met de database "omdat het kan".
Zoals een * voor de naam om aan te gevan dat klant overleden is.
of een # erachter dat er een aflever opmerking is.

En je wilt niet weten wat voor ellende dat is na een paar jaar bagger in de db gooien. Daar komt geen fatsoenlijke rapportage meer uit.

Dus denk goed na over je database
dan pas over de query's en de code.

Nu heb je zogenaamd bewezen dat je beter bent dan de belastingdienst.
Maar dit gaat over een tijdje omvallen als er te veel data in gaat komen.

[size=xsmall]Toevoeging op 17/03/2020 13:56:59:[/size]

Je wilt hier je hele loonaangifte meer gaan regelen?


Dit topic klinkt steeds enger.
Ik wil niet met de botte bijl in dit topic inhakken. Maar ik denk dat een lening bij de bank aanvragen om orde in de administratie systemen te scheppen, eigenlijk geen slecht idee is :X

Reageren