Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] PDF maken; probleem met vullen array mbv mysql-loop

None
4 antwoorden
  • Ik ben bezig met het maken van een online shop. Hierbij wordt gebruik gemaakt van een tabel orders en daarbij hoort de tabel Orderregels (hier staan de bestelde producten van een order in)

    Aan het eind van de bestelprocedure moet door php een pdf document worden aangemaakt. Dit doe ik met behulp van R&OS PHP pdf creation (http://www.ros.co.nz/pdf)

    Dit lukt aardig maar ik loop vast bij de "while-loop" die de orderregels in het pdf document moet zetten.

    De code die de data van een tabel voor het pdfdocument weergeeft is:[code:1:5a3d231731]
    $DataOrderRegels = array(
    array('Omschrijving'=>$Omschrijving,'Aantal'=>$Artnr,'Bedrag'=>$Bedrag'')
    );
    [/code:1:5a3d231731]

    Echter de binnenste regel/array moet voor elke orderregel worden herhaald in een loop zo dat $DataOrderRegels alle data bevat.

    Ik heb nu iets al"s:
    [code:1:5a3d231731]//Begin 'buitenste' array
    $DataOrderRegels = array(

    //start loop
    $result1=mysql_query("SELECT Omschrijving,Aantal,Bedrag FROM orderrgl WHERE Ordernr='$Ordernr'");
    while ($row1 = mysql_fetch_array($result1)) {
    $Omschrijving=$row1['Omschrijving'];
    $Aantal=$row1['Aantal'];
    $Bedrag=$row1['Bedrag'];

    //'Binnenste' array die moet worden herhaald afhankelijk van het aantal orderregels
    array('Omschrijving'=>$Omschrijving,'Aantal'=>$Aantal." x € ".$Consumentenprijs." ".$Verkpr_Eenheid,'Bedrag'=>"€ ".$Totbdrg_incl),

    }
    //eind loop

    //sluit buitenste loop af met slotregel
    array('Omschrijving'=>'','Aantal'=>$Artnr,'Bedrag'=>'')
    );
    [/code:1:5a3d231731]

    Dit werkt echter niet omdat volgens mij ook code als $result1= … als waarde voor de buitenste array wordt gezien.

    Ik hoop het probleem een beetje helder is, kan iemand mij mee opweg helpen?
  • Kun je eens laten zien hoe die array ($DataOrderRegels) eruit ziet en hoe die er uit moet zien? Ik begrijp geloof ik niet helemaal wat er mis gaat.

    Weet je zeker dat je query de gewenste resultaten uit je DB ophaat?
  • Het moet er als volgt uit komen te zien. Dit is een voorbeeld in een geval dat er drie orderregels zijn:

    [code:1:06aea054d0]$DataOrderRegels = array(
    array('Orderregelnr'=>'1','Omschrijving'=>'Artikel 1','Aantal'=>2,'Bedrag'=>'50,95'),
    array('Orderregelnr'=>'2','Omschrijving'=>'Artikel 2','Aantal'=>2,'Bedrag'=>'12,85'),
    array('Orderregelnr'=>'3','Omschrijving'=>'Artikel 3','Aantal'=>2,'Bedrag'=>'10,00')
    );[/code:1:06aea054d0]

    Echter de orderregels moeten dynamisch in de array worden gestopt via MySQL database.

    Hopelijk is het nu duidelijker.
  • Ik ben er reeds uitgekomen met:

    [code:1:ad82d6f1cb]$huidigerij = 0;
    $DataOrderRegels= array();

    $result1=mysql_query("SELECT Artikelnr,Omschrijving,Aantal,Consumentenprijs FROM orderrgl WHERE Ordernr='$Ordernr'");
    while ($row1 = mysql_fetch_array($result1)) {

    $DataOrderRegels[$huidigerij]['Omschrijving'] = $row1[1];
    $DataOrderRegels[$huidigerij]['Aantal'] = $row1[2];
    $DataOrderRegels[$huidigerij]['Bedrag'] = "€ ".$row1[3];

    $huidigerij++;

    }[/code:1:ad82d6f1cb]

    Toch bedankt :wink:

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.