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?
**KNIP**

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!!!

ed hoeven, lees even mee:
Ozzie: ik had die '5' even gemist, maar nu je het zegt inderdaad ja. En dat is ook meteen de reden van de melding, dat soort achterlijkheden die je kunt uithalen.

Je kunt ook gewoon leren wat datatypen zijn en dat coercion GEEN goed idee is. Wanneer je wilt converteren kun je ook gewoon casten. Een string optellen bij een getal of andersom hoezeer die string ook op een getal lijkt is achterlijk. Getallen tel je op bij getallen, net als dat je strings concateneert aan strings. Dat je nu allerlei scripts moet gaan repareren zegt NIETS over PHP, maar over hoe jij ermee om bent gegaan, bugs in de hand werkend en wel. Hetzelfde geldt voor niet bestaande array indexes. Wat wil je dan dat er gebeurt? In stilte foute data verwerken? Wanneer je weet dat een array index niet hoeft te bestaan kun je daarop controleren.

Ik ben nu wel een beetje klaar met dat gevit op PHP 7.1, je opmerkingen hebben immers NIETS met PHP te maken. Als jij geen meldingen wil zien zet je toch gewoon lekker error_reporting(0) bovenaan je script? Moet je alleen niet aankomen met "waarom doet dit niet wat ik wil?"

Voor de grap trouwens: weet je hoeveel scripts ik heb moeten repareren bij het migreren? Ik ga je laten raden naar het aantal.
>> DOE JIJ FF NORMAAL HEE !!! OZZIE

Lees even je eigen reactie en praat gewoon zelf normaal ... zonder te gaan schreeuwen.

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

Post eens je hele code.


[size=xsmall]Toevoeging op 28/05/2017 01:27:22:[/size]

>> Ik ben nu wel een beetje klaar met dat gevit op PHP 7.1, je opmerkingen hebben immers NIETS met PHP te maken.

Precies!!
WWil ik jullie bedanken, voor de PHP test link van OZZIE .
En als het als gevit is overgekomen dan was dat niet negatief bedoeld,
enkel kwam ik niet tot een oplossing, wat in PHP7.0 goed runt en in PHP7.1 vast loopt,
ik weet nu waarom, en dit is voor mij een werkend oplossing.

de data kan zijn '', of een string, zijn of een getal.

$waarde='';//$waarde='aac';// $waarde='1080,500,1';
if($waarde==''){$doeditdan=$waarde;}elseif($waarde!=''){$doeditdan=$waarde;} elseif($waarde>0) { $doeditdan = $waarde ;}
echo $doeditdan;

En zo werkt het met elsif gaat het goed ^^)


Als dat je code is, afgezien van de variabele namen dan.. Dan heb ik medelijden met degene die deze code gaat ontvangen. Damn.

Let op.
if ($waarde == '') Waarde is leeg, oh laat ik doeditdan maar gelijk maken aan waarde.
elseif ($waarde != '') Waarde is niet leeg, laat ik doeditdan maar gelijk maken aan waarde.
elseif ($waarde > 0) (wanneer ga je dit met bovenstaande condities ooit zien?) Laten we opnieuw doeditdan maar gelijk maken aan waarde.
Ach het is maar als voorbeeld bedoeld ik ga mijn script niet aan publiek tonen

Het gaat er om dat op deze manier geen foutmeldingen meer zijn
En hoe de data ingevuld word, moet zo flexibel als mogelijk zijn
de eenvoud zit in de data, des te korter des te beter.
dus als data geen waarde geeft of een string of een getal
flex !! toch.
de site werkt super snel en daar gaat het om.
>> de site werkt super snel en daar gaat het om.
Die heb ik vaker gehoord.
Ed hoeven vindt het blijkbaar nodig om al zijn reacties te verwijderen. Laten we dat met z'n account dan ook maar doen ...
Hmm... :-/
Maar zullen we dit aan het moderatie-team overlaten?
Zeker ... ze zijn als het goed is op de hoogte ;-)

Reageren