Beste mensen,

Ik gebruik de volgende sql regel om de laatste record uit de database te lezen.:
 $pdo = Database::connect();
       $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       $sql = "SELECT * FROM metingen ORDER BY Id DESC LIMIT 1";
       $q = $pdo->prepare($sql);
       $q->execute(array($Id,  $Datum,  $Tijd,  $Product,  $Prod_Nr,  $Batch_Nr,  $Orders,  $Lijn,  $FP,  $PeroxideType, enz, enz))
       Database::disconnect();

   while ($row = $q->fetch(PDO::FETCH_ASSOC)) {

            $product  = $row[Product];
           $tijd   =$row[Tijd];
           $datum   = $row[Datum];
           $agglosilo  = $row[AggloSilo];
           $flakeasilo  =$row[FlakeSiloA];
           $flakebsilo = $row[FlakeSiloB];
           $peroxide = $row[PeroxideType];
           $peroxideProcent = $row[PeroxideProcent];
           $rec  = $row[RecycleProcent];
           //$test1 = $row[test1];
           $batchnr   = $row[Batch_Nr];
           $operator  = $row[Operator1];
           $fpsilo  =$row[FP];
           $flakea = $row[FlakeA];
           $flakeb = $row[FlakeB];
           $mvr  = $row[MVRml10ml];
           $agglo = $row[AggloProcent];
           $recycle   =$row[RecycleSilo];
enz 
enz


De gegevens die hij dan binnen haalt worden ingevuld in stickers.
Het vreemde is nu, dat hij de stickers na verloop van tijd ineens anders invult.
Voorbeeld.: ik vul 3 keer gegevens in en print na iedere invulling een etiket uit.
de eerste invulling gaat goed, de tweede ook en bij de derde print hij mij de opeens de gegevens uit van de 2de meeting.
Dan doe ik 14 keer invullen , opslaan en etiketten afdrukken , dat gaat dan goed en daarna vul ik weer iets in en krijg ik opeens een etiket van de aller eerste record.

Kan mij iemand vertellen hoe dit kan gebeuren, ik roep toch echt alleen steeds het laatste record op.
Ik zit even met grote vraagtekens nu.
Even een schot in het wild hoor, maar zou het niet logischer zijn dat je die Database::disconnect(); na de while loop doet?

Sowieso: met een limit 1 heb je toch geen while() nodig?

En waarom die array met "parameters" in de execute? zo te zien heeft je query helemaal geen parameters nodig.
Uhm.

Wat doet Database::disconnect(); op regel 6?

@Rob was me voor :].
Dat was ik ook aan het denken. Connectie gesloten voor de while gedaan is.
Evengoed kan je Fetch object ook hanteren voor 1 item....
Dus als ik jullie goed begrijp moet deze regel al zowiezo eruit.:
$q->execute(array($Id,  $Datum,  $Tijd,  $Product,  $Prod_Nr,  $Batch_Nr,  $Orders,  $Lijn,  $FP,  $PeroxideType, enz, enz))


En die disconnect als laatste zetten.
Echter bij de briefjes , die na het afdrukken van de etiketten komt, heb ik die code ook zo staan en daar gaat het wel goed of heb ik toevallig dan geluk gehad?
@Bart , dus dat is als je dus het fetch object wilt hanteren in voor 1 item?
Maar dat wat ik voor jou antwoord heb geplaatst is dat goed?
Net getest als ik die execute eruit laat krijg ik geen waarden ingevuld in mijn etiketten.
Die execute() kan wel blijven staan, maar als ik het zo zie zijn de parameters (de array met parameters) niet nodig. Tenzij je eea weggelaten hebt en we iets missen wat wel van belang is.

Om je probleem op te lossen zou ik in ieder geval beginnen met de disconnect helemaal op het eind zetten.
Pascal Schuffelers op 06/02/2019 21:33:38

@Bart , dus dat is als je dus het fetch object wilt hanteren in voor 1 item?
Maar dat wat ik voor jou antwoord heb geplaatst is dat goed?
Net getest als ik die execute eruit laat krijg ik geen waarden ingevuld in mijn etiketten.




<?php
$sql = "SELECT * FROM metingen ORDER BY Id DESC LIMIT 1";
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$q = $pdo->prepare($sql);
$q->execute();
$row = $q->fetch(PDO::FETCH_OBJ);


$product         =$row->Product;
$tijd            =$row->Tijd;
$datum           =$row->Datum;
$agglosilo       =$row->AggloSilo;
$flakeasilo      =$row->FlakeSiloA;
$flakebsilo      =$row->FlakeSiloB;
$peroxide        =$row->PeroxideType;
$peroxideProcent =$row->PeroxideProcent;
$rec             =$row->RecycleProcent;
//$test1         =$row->test1;
$batchnr         =$row->Batch_Nr;
$operator        =$row->Operator1;
$fpsilo          =$row->FP;
$flakea          =$row->FlakeA;
$flakeb          =$row->FlakeB;
$mvr             =$row->MVRml10ml;
$agglo           =$row->AggloProcent;
$recycle         =$row->RecycleSilo;



Database::disconnect();

 

?>
Tis nog een pruts pagina waar ik structuur in wil krijgen , maar om het overzicht te laten van alle codes...

<?php
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

require 'database.php';


$Id = null;
$Product = null;
$Tijd    = null;
$Datum   = null;
$Batch_Nr   = null;
$Orders = null;
$FlakeBatchNr1    = null;
$FlakeBatchNr2   = null;
$FlakeType1 = null;
$FlakeType2 = null;
$Lijn  = null;
$FP  = null;
$PeroxideType = null;
$PeroxideProcent= null;
$FlakeA   = null;
$FlakeSiloA = null;
$FlakeB = null;
$FlakeSiloB= null;
$AggloProcent  = null;
$AggloSilo = null;
$RecycleProcent = null;
$RecycleSilo = null;
$MVRml10ml = null;
$MVRSTD   = null;
$MFRg10ml  = null;
$AshProcent   = null;
$VochtProcent = null;
$KleurL  = null;
$KleurA = null;
$KleurB  = null;
$Operator1  = null;
$FlakeType1  = null;
$FlakeType2  = null;
$Productielijn1= null;
$Productielijn2= null;
$FlakeBatchNr1 = null;
$FlakeBatchNr2 = null;
$FlakeVochtProcent1 = null;
$FlakeVochtProcent2 = null;
$FlakeKleurL1 = null;
$FlakeKleurL2 = null;
$FlakeKleurA1  = null;
$FlakeKleurA2  = null;
$FlakeKleurB1  = null;
$FlakeKleurB2   = null;
$Remark1  = null;
$Remark2  = null;
$Remark3  = null;
$MeltDens = null;
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Print een Label 1-2-3</title>
        <script src = "DYMO/DYMO.Label.Framework.latest.js" type="text/javascript" charset="UTF-8"> </script>
        <script src = "DYMO/PrintDymoBasicv3Granulaat.js" type="text/javascript" charset="UTF-8"> </script>
        <script src = "DYMO/PrintDymoBasicv3Flake1.js" type="text/javascript" charset="UTF-8"> </script>
        <script src = "DYMO/PrintDymoBasicv3Flake2.js" type="text/javascript" charset="UTF-8"> </script>
    </head>

    <body>
        <?php
        $pdo = Database::connect();
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "SELECT * FROM metingen ORDER BY Id DESC LIMIT 1";
        $q = $pdo->prepare($sql);
        $q->execute(array($Id1,  $Datum,  $Tijd,  $Product,  $Prod_Nr,  $Batch_Nr,  $Orders,  $Lijn,  $FP,  $PeroxideType,  $PeroxideProcent,  $FlakeA,  $FlakeSiloA,$FlakeB,  $FlakeSiloB,  $AggloProcent,  $AggloSilo,  $RecycleProcent,  $RecycleSilo,  $MVRml10ml,  $MVRSTD,  $MFRg10ml,  $AshProcent,  $VochtProcent,  $KleurL,  $KleurA,  $KleurB,  $Operator1,  $FlakeType1,  $FlakeType2,  $Productielijn1,  $Productielijn2,  $FlakeBatchNr1,  $FlakeBatchNr2,  $FlakeVochtProcent1,  $FlakeVochtProcent2,  $FlakeKleurL1,  $FlakeKleurL2,  $FlakeKleurA1,  $FlakeKleurA2,  $FlakeKleurB1,  $FlakeKleurB2,  $Remark1,  $Remark2,$Remark3,  $MeltDens));
        // $row = $q -> fetch();
        //$PeroxideType = $row["peroxide"];

        while ($row = $q->fetch(PDO::FETCH_ASSOC)) {
            $Id  = $row[Id];
            $product  = $row[Product];
            $tijd   =$row[Tijd];
            $datum   = $row[Datum];
            $agglosilo  = $row[AggloSilo];
            $flakeasilo  =$row[FlakeSiloA];
            $flakebsilo = $row[FlakeSiloB];
            $peroxide = $row[PeroxideType];
            $peroxideProcent = $row[PeroxideProcent];
            $rec  = $row[RecycleProcent];
            //$test1 = $row[test1];
            $batchnr   = $row[Batch_Nr];
            $operator  = $row[Operator1];
            $fpsilo  =$row[FP];
            $flakea = $row[FlakeA];
            $flakeb = $row[FlakeB];
            $mvr  = $row[MVRml10ml];
            $agglo = $row[AggloProcent];
            $recycle   =$row[RecycleSilo];
            $mvrstd   = $row[MVRSTD];
            $mfr  = $row[MFRg10ml];
            $ash  =$row[AshProcent];
            $order = $row[Orders];
            $kleurl = $row[KleurL];
            $kleura  = $row[KleurA];
            $kleurb = $row[KleurB];
            $vocht1   =$row[VochtProcent];
            $opmerkinggr = $row[Remark3];
            $batchnrf1   = $row[FlakeBatchNr1];
            $plijn1  = $row[Productielijn1];
            $flakesoorta  =$row[FlakeType1];
            $vochtfa = $row[FlakeVochtProcent1];
            $kleurlf1 = $row[FlakeKleurL1];
            $kleuraf1  = $row[FlakeKleurA1];
            $kleurbf1 = $row[FlakeKleurB1];
            $opmerkingf1 = $row[Remark1];
            $batchnrf2   =$row[FlakeBatchNr2];
            $plijn2   = $row[Productielijn2];
            $flakesoortb  = $row[FlakeType2];
            $vochtfb  =$row[FlakeVochtProcent2];
            $kleurlf2 = $row[FlakeKleurL2];
            $kleuraf2 = $row[FlakeKleurA2];
            $kleurbf2  = $row[FlakeKleurB2];
            $opmerkingf2 = $row[Remark2];
            }
            Database::disconnect();      //stond eerst voor de while loop.
        ?>

        <h1>DYMO Label Framework JavaScript Library QCP test: Print Label test Granulaat van id = <?php echo $Id; ?></h1>
        <div id="textDiv">
            <label for="textTextArea">Label tekst:</label><br/>
            <textarea name="textTextArea" id="3textTextArea"  rows='5' cols='40'><?php echo $datum; ?><?php echo "&nbsp;"; ?><?php echo $tijd; ?><?php echo "\n"; ?><?php echo $product; ?><?php echo "&nbsp; Order Nr.:"; ?><?php echo $order; ?><?php echo "\n"; ?><?php echo "Batch Nr.: "; echo $batchnr; ?></textarea>
        </div>
        <div id="printDiv">
            <button id="3printButton" onclick="PrintMyDymo('\n<?php echo $datum; ?><?php echo "&nbsp;"; ?><?php echo $tijd; ?>\n<?php echo $product; ?>\n<?php echo "Order Nr.:"; ?><?php echo $order; ?>\n<?php echo "Batch Nr.: "; echo $batchnr; ?>')">Afdrukken</button>
        </div>

        <h1>DYMO Label Framework JavaScript Library QCP test: Print Label test Flake 1</h1>
        <div id="textDiv">
            <label for="textTextArea">Label tekst:</label><br/>
            <textarea name="textTextArea" id="3textTextArea"  rows='5' cols='40'><?php echo $datum; ?><?php echo "&nbsp;"; ?><?php echo $tijd; ?><?php echo "\n"; ?><?php echo $FlakeType1; ?><?php echo "&nbsp; Flake Nr.:"; ?><?php echo $FlakeBatchNr1; ?><?php echo "\n"; ?><?php echo "Batch Nr.: "; echo $batchnr; ?></textarea>
        </div>
        <div id="printDiv">
            <button id="3printButton1" onclick="PrintMyDymo1('\n<?php echo $datum; ?><?php echo "&nbsp;"; ?><?php echo $tijd; ?>\n<?php echo $FlakeType1; ?>\n<?php echo "Flake Nr.:"; ?><?php echo $FlakeBatchNr1; ?>\n<?php echo "Batch Nr.: "; echo $batchnr; ?>')">Afdrukken</button>
        </div>

        <script type="text/javascript">
        document.getElementById("3printButton").click();
        document.getElementById("3printButton1").click();
        </script>

        <?php if(empty($flakesoortb)) {
            //  echo 'true';
            }
            else { ?>
            <h1>DYMO Label Framework JavaScript Library QCP test: Print Label test Flake 2</h1>
            <div id="textDiv">
                <label for="textTextArea">Label tekst:</label><br/>
                <textarea name="textTextArea" id="3textTextArea"  rows='5' cols='40'><?php echo $datum; ?><?php echo "&nbsp;"; ?><?php echo $tijd; ?><?php echo "\n"; ?><?php echo $FlakeType2; ?><?php echo "&nbsp; Flake Nr.:"; ?><?php echo $FlakeBatchNr2; ?><?php echo "\n"; ?><?php echo "Batch Nr.: "; echo $batchnr; ?></textarea>
            </div>
            <div id="printDiv">
                <button id="3printButton2" onclick="PrintMyDymo1('\n<?php echo $datum; ?><?php echo "&nbsp;"; ?><?php echo $tijd; ?>\n<?php echo $FlakeType2; ?>\n<?php echo "Flake Nr.:"; ?><?php echo $FlakeBatchNr2; ?>\n<?php echo "Batch Nr.: "; echo $batchnr; ?>')">Afdrukken</button>
            </div>

            <script type="text/javascript">
            document.getElementById("3printButton2").click();
            </script>
            <?php } ?>
            <!-- <button id="sluit" onclick="JavaScript:window.close()">Close</button>  -->

            <script type="text/javascript">
            history.go(0);
            location.href = "totalbriefjesv4.php";
            </script>
    </body>
</html>


[size=xsmall]Toevoeging op 06/02/2019 22:11:06:[/size]

@Bart,

heb de code zo aangepast hoe jij het vermeld en hij geeft nu alles netjes aan.

Nu is mijn vraag, zou het daaraan kunnen liggen dat hij af en toe niet de laatste id invult in de etiketten?
Want ik kan in deze code niet echt zeggen dat die dat zou moeten, hij zou ten allertijde het laatste id moeten gebruiken of doet hij dat niet omdat ik de code fout had staan?
Daar gaat het aan liggen.
Je sorteert nu DESC ( laatste waarde ) met een limiet van 1

Reageren