Array met while loop
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$SQL="select * from factuurbouw where sessieid='".$factuursessie."' order by fbid";
$zoekresultaten=$zoekresultaten_query=mysql_query(($SQL),$eaccesDB);
$zoekresultaten=mysql_fetch_array($zoekresultaten_query);
if (!($zoekresultaten==0))
{
while(!($zoekresultaten==0))
{
$prijs=$zoekresultaten["productprijs"];
$aantal=$zoekresultaten["productaantal"];
$naam=$zoekresultaten["productnaam"];
$ean=$zoekresultaten["productean"];
$serienr=$zoekresultaten["productserienr"];
$pid=$zoekresultaten["productid"];
?>
$SQL="select * from factuurbouw where sessieid='".$factuursessie."' order by fbid";
$zoekresultaten=$zoekresultaten_query=mysql_query(($SQL),$eaccesDB);
$zoekresultaten=mysql_fetch_array($zoekresultaten_query);
if (!($zoekresultaten==0))
{
while(!($zoekresultaten==0))
{
$prijs=$zoekresultaten["productprijs"];
$aantal=$zoekresultaten["productaantal"];
$naam=$zoekresultaten["productnaam"];
$ean=$zoekresultaten["productean"];
$serienr=$zoekresultaten["productserienr"];
$pid=$zoekresultaten["productid"];
?>
Nu wil ik deze gegevens in de array hier onder plaatsen dmv een while of foreach loop maar ik blijf fouten krijgen. De bedoeling is dus dat ik alleen voor de lines een loop maak, de lines zijn factuur regels en kan per factuur verschillen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
// build the post body we are going to submit
$request->buildPostBody(array(
'clientnr' => $klantid,
'reference' => array(
'line1' => '',
'line2' => 'Hartelijk dank voor uw order',
'line3' => 'Vermeld altijd uw factuurnummer bij een betaling'
),
'lines' => array(
array('amount' => $aantal,
'amount_desc' => 'x',
'description' => $naam,
'tax_rate' => 21,
'price' => $prijs
),
array('amount' => 1,
'amount_desc' => '',
'description' => 'Wooden case',
'tax_rate' => 21,
'dicount_pct' => 25,
'price' => 500
),
array('amount' => 10,
'amount_desc' => 'hours',
'description' => 'Support',
'tax_rate' => 6,
'price' => 62.5
),
array('description' => 'This is a textline')),
'discount' => 10,
'discounttype' => 'percentage',
'action' => 'send',
'sendmethod' => 'email'
));
?>
// build the post body we are going to submit
$request->buildPostBody(array(
'clientnr' => $klantid,
'reference' => array(
'line1' => '',
'line2' => 'Hartelijk dank voor uw order',
'line3' => 'Vermeld altijd uw factuurnummer bij een betaling'
),
'lines' => array(
array('amount' => $aantal,
'amount_desc' => 'x',
'description' => $naam,
'tax_rate' => 21,
'price' => $prijs
),
array('amount' => 1,
'amount_desc' => '',
'description' => 'Wooden case',
'tax_rate' => 21,
'dicount_pct' => 25,
'price' => 500
),
array('amount' => 10,
'amount_desc' => 'hours',
'description' => 'Support',
'tax_rate' => 6,
'price' => 62.5
),
array('description' => 'This is a textline')),
'discount' => 10,
'discounttype' => 'percentage',
'action' => 'send',
'sendmethod' => 'email'
));
?>
Ward:
Graag voortaan bij code de [code][/code]-tags gebruiken.
Hier kun je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kun je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 12/07/2016 06:26:23 door Ward van der Put
Dennis Ham op 12/07/2016 03:38:30:
maar ik blijf fouten krijgen.
En wat zijn die fouten dan?
Ik heb geprobeerd de while code voor de 'lines' => array te zetten maar dat breekt de hele code. Ik heb van alles geprobeerd maar kan ook geen voorbeeld op internet vinden van hoe ik een loop maak in een array dat ik dus die 3 lines array vervang met iets als foreach om iedere product regel uit mijn database te halen en te versturen via deze array.
$zoekresultaten is een array(), waarom check je dan op 0 (nul)?
Wat is het nut van al deze nieuwe variabelen?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$prijs=$zoekresultaten["productprijs"];
$aantal=$zoekresultaten["productaantal"];
$naam=$zoekresultaten["productnaam"];
$ean=$zoekresultaten["productean"];
$serienr=$zoekresultaten["productserienr"];
$pid=$zoekresultaten["productid"];
?>
$prijs=$zoekresultaten["productprijs"];
$aantal=$zoekresultaten["productaantal"];
$naam=$zoekresultaten["productnaam"];
$ean=$zoekresultaten["productean"];
$serienr=$zoekresultaten["productserienr"];
$pid=$zoekresultaten["productid"];
?>
En waar komt $klantid vandaan?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'lines' => array(
array('amount' => $aantal,
'amount_desc' => 'x',
'description' => $naam,
'tax_rate' => 21,
'price' => $prijs
),
array('amount' => 1,
'amount_desc' => '',
'description' => 'Wooden case',
'tax_rate' => 21,
'dicount_pct' => 25,
'price' => 500
),
array('amount' => 10,
'amount_desc' => 'hours',
'description' => 'Support',
'tax_rate' => 6,
'price' => 62.5
),
array('amount' => $aantal,
'amount_desc' => 'x',
'description' => $naam,
'tax_rate' => 21,
'price' => $prijs
),
array('amount' => 1,
'amount_desc' => '',
'description' => 'Wooden case',
'tax_rate' => 21,
'dicount_pct' => 25,
'price' => 500
),
array('amount' => 10,
'amount_desc' => 'hours',
'description' => 'Support',
'tax_rate' => 6,
'price' => 62.5
),
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$sql = "SELECT * FROM factuurbouw WHERE sessieid='".$factuursessie."' ORDER BY fbid";
$zoekresultaten = mysql_query($sql, $eaccesDB);
$lines = array();
while($row = mysql_fetch_array($zoekresultaten))
{
$lines[] = array('amount' => $row['productaantal',
'amount_desc' => 'x',
'description' => $row['productnaam'],
'tax_rate' => 21,
'price' => $row['productprijs']
);
}
$request->buildPostBody(array(
'clientnr' => $klantid,
'reference' => array(
'line1' => '',
'line2' => 'Hartelijk dank voor uw order',
'line3' => 'Vermeld altijd uw factuurnummer bij een betaling'
),
'lines' => $lines,
'discount' => 10,
'discounttype' => 'percentage',
'action' => 'send',
'sendmethod' => 'email'
));
?>
$sql = "SELECT * FROM factuurbouw WHERE sessieid='".$factuursessie."' ORDER BY fbid";
$zoekresultaten = mysql_query($sql, $eaccesDB);
$lines = array();
while($row = mysql_fetch_array($zoekresultaten))
{
$lines[] = array('amount' => $row['productaantal',
'amount_desc' => 'x',
'description' => $row['productnaam'],
'tax_rate' => 21,
'price' => $row['productprijs']
);
}
$request->buildPostBody(array(
'clientnr' => $klantid,
'reference' => array(
'line1' => '',
'line2' => 'Hartelijk dank voor uw order',
'line3' => 'Vermeld altijd uw factuurnummer bij een betaling'
),
'lines' => $lines,
'discount' => 10,
'discounttype' => 'percentage',
'action' => 'send',
'sendmethod' => 'email'
));
?>
Allereerst, zou $SQL meerdere records moeten retourneren?
mysql_fetch_array() haalt slechts een enkel record op uit je database en retourneert deze zowel als een numeriek alsook een associatief array. Maar deze opdracht retourneert dus niet alle records in één keer.
Waar je naar op zoek bent is (abstract genomen) waarschijnlijk zoiets:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$lines = array();
$res = mysql_query('je query', $eaccessDB);
while ($row = mysql_fetch_assoc($res)) {
// creeer een nieuwe array-entry in $lines en vul deze met data uit $row
$lines[] = array(
'kolomnaam' => $row['whatever'],
// ...
);
}
?>
$lines = array();
$res = mysql_query('je query', $eaccessDB);
while ($row = mysql_fetch_assoc($res)) {
// creeer een nieuwe array-entry in $lines en vul deze met data uit $row
$lines[] = array(
'kolomnaam' => $row['whatever'],
// ...
);
}
?>
Je doet er trouwens verstandiger aan om over te stappen op MySQLi of PDO want de standaard MySQL-driver (dit omvat alle mysql_-functies) is in PHP 7 verdwenen.
(meh, SanThe was me voor)
Gewijzigd op 12/07/2016 13:14:39 door Thomas van den Heuvel
Bedankt voor de reacties. SanThe daar kan ik wat mee, heb nu een idee hoe het er uit moet zien. Ik ga het vanavond uitproberen.