Hallo Allemaal,

Zoals sommigen nu wel weten ben ik een oude site van mij aan het opknappen. Nu loop ik vast op het volgende:

Ik wil een javascript uit laten voeren, maar krijg een melding undefined variabel, terwijl er zeker wat achter staat.
Nu ben ik bang dat dit in de loop van de jaren veranderd is, en dat het daarom niet werkt.


$log="SELECT * FROM kieklog WHERE wieid=$id";
$logdata = mysqli_query($db,$log);
$logrij=mysqli_fetch_array($logdata);
$rows=mysqli_num_rows($logdata);
if ($rows) {
do {

$cover=$logrij['filmcover'];
$kiekcovers.='<a href="javascript:Popup(\'kiekkiekspiek.php?id='.$logrij['filmid'].'\');"><img src="dvd-covers/tn/tn_'.$cover.'" width=150 > &nbsp;';
} while ($logrij=mysqli_fetch_array($logdata));
}


Ik ben meteen bezig om de gekke benamingen te veranderen, maar dat lijkt me handiger als het script ook goed werkt.
Weet iemand wat ik hier fout doe?
ik had verzocht om mijn account te verwijderen is reeds nog niet gebeurt ik weiger om aan soort negatieve uitlatingen me te laten meeslepen ... punt!

Enig gedrag met respect had ik hier wel verwacht... maar als er een begint met

Waarom zit je continu te z**ken over PHP 7.1 terwijl je zelf rare dingen doet?
Terwijl diegene zelf niet alles leest...!!! 1e geval
2e

in BEIDE gevallen heb ik PHP Warning A non-numeric value encountered

WAARDOOR ik ook het TWEEDE geval heb GETEST en het tweede geval is inderdaad een string

Dus de vraag is WAAROM het eerste geval fout is!!!


Ik heb het verzoek niet binnengekregen. Daarvoor mijn excuses. Ik zal daarom straks je account defintief verwijderen.
Persoonlijk vind ik het wel jammer...
Jammer dat het zo'n verhitte discussie werd, want het probleem uit de openingspost is vrij eenvoudig. Ingekort:

Ik wil een javascript uit laten voeren, maar krijg een melding undefined variabel, terwijl er zeker wat achter staat.
Nu ben ik bang dat dit in de loop van de jaren veranderd is, en dat het daarom niet werkt.
[…]

$rows=mysqli_num_rows($logdata);
if ($rows) {
    do {
        $cover = $logrij['filmcover'];
    } while ($logrij = mysqli_fetch_array($logdata));
}


Doordat $logrij = mysqli_fetch_array($logdata) pas in de while (…) wordt aangeroepen, is $logrij in de do {…} aanvankelijk undefined
Ook de discussie over de "Warning: A non-numeric value encountered"-melding is m.i. ontspoord, want Ed had daar wel degelijk een punt. (En de lokale deskundologen hebben hun onkunde over dit specifieke punt pijnlijk duidelijk kenbaar gemaakt.)

Als we kijken naar de migration notes van 7.1, dan staat daar letterlijk: "an E_WARNING is emitted when the string does not contain a numeric value."

Uit het voorbeeld dat erbij wordt gegeven valt af te leiden dat '5' (inclusief de quotes) door PHP 7.1 gezien wordt als een numerieke waarde (iets wat hier expliciet wordt beschreven). De door Ed geposte code zou dus geen warning moeten triggeren. Als ik dat zelf test, dan komt er inderdaad geen warning.

Het enige wat ik me kan voorstellen is dat de fout dus zat in een ander stuk code, maar door de rabiate discussie is dat nooit goed naar boven gekomen...
Willem vp op 30/05/2017 11:44:37

Uit het voorbeeld dat erbij wordt gegeven valt af te leiden dat '5' (inclusief de quotes) door PHP 7.1 gezien wordt als een numerieke waarde (iets wat hier expliciet wordt beschreven). De door Ed geposte code zou dus geen warning moeten triggeren. Als ik dat zelf test, dan komt er inderdaad geen warning.

En vandaar ook mijn eerdere vraag om de gehele code te posten ...

Ozzie PHP op 28/05/2017 01:26:42

>> Dus de vraag is WAAROM het eerste geval fout is!!!

Post eens je hele code.

Mocht Ed nog meelezen ... Ik stoorde me er vooral aan dat je continu liep te vitten op een PHP-versie (7.1) terwijl dat niet relevant is en niets toevoegt. Mijn uitspraak was misschien een beetje bot, waarvoor bij deze mijn oprechte excuses. Mocht je willen terugkomen op het forum, weet dan dat je welkom bent ...

Reageren