Door
Dennis Ham
op 12-07-2016 03:38
gewijzigd op 12-07-2016 06:26
2.082 views
Ik haal gegevens uit mijn database op deze manier:
<?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"];
?>
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
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.
Wat is de bedoeling van twee keer = in:
<?php
$zoekresultaten=$zoekresultaten_query=mysql_query(($SQL),$eaccesDB);
?>
$zoekresultaten is een array(), waarom check je dan op 0 (nul)?
<?php
if (!($zoekresultaten==0))
?>
Wat is het nut van al deze nieuwe variabelen?
<?php
$prijs=$zoekresultaten["productprijs"];
$aantal=$zoekresultaten["productaantal"];
$naam=$zoekresultaten["productnaam"];
$ean=$zoekresultaten["productean"];
$serienr=$zoekresultaten["productserienr"];
$pid=$zoekresultaten["productid"];
?>
Met deze gegevens wordt een factuur aangemaakt in mijn eigen factuur systeem dat werkt prima. Ik wil deze factuur nu ook via een API naar een ander systeem sturen. Dat werkt als ik de tweede array script laat uitvoeren met dummy data. De enigste probleem is dus dat ik niet weet hoe om $aantal,$prijs en $naam voor iedere regel uit mijn database moet halen en in de tweede array script moet plaatsen, een keer werkt maar de aantal regels verschillen dus heb iets nodig wat de 3 variabelen in lines array meer of minder dan 3 keer kan toevoegen afhangende van hoe veel product regels er in de database staan.:
@topicstarter: Je haalt denk ik een aantal dingen door elkaar.
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:
<?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'],
// ...
);
}
?>
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.