Ik krijg de volgende melding
Warning: A non-numeric value encountered in

Bij dit script:
$podiumpoten += $aantalpoten['berekening_aantal'];

Ik lees op verschillende websites dat ik (int) ervoor moet zetten, maar dat haalt de melding niet weg.

Wat zou ik nog meer kunnen proberen?
Nee ik krijg nog steeds de melding.
Eigenlijk nog 4 keer op die pagina.

Het is ontstaan na een verhuizing van de website.

Het script werkt wel gewoon maar met deze warnings.

Ik heb wat extra var dumps gemaakt:

//hoeveel gewone podiumpoten zijn er?								
	$aantalpotensql  = $connection->query("
		Select
			berekening_product,
			berekening_aantal,
			tegels
		FROM
			podium_berekening_onderdelen,
			podium_product
		WHERE
			code=berekening_product
		AND
			berekening_soort='3'
		AND
			berekening_kenmerk = '".$kenmerk."'
		");
		
//$aantalpotensql =	mysql_query($aantalpotenqry);	
if($aantalpotensql === false){
	echo (" Er gaat iets mis");
}else{	
	while($aantalpoten = $aantalpotensql->fetch_assoc())
	
	$podiumpoten				+= 	intval($aantalpoten['berekening_aantal']);
	$podiumdelen				=	$podiumpoten/4;	
	$rekenpodiumpoten			= 	$podiumpoten*$factorpoten;
	
	var_dump(intval($aantalpoten['berekening_aantal'])); 
	var_dump(intval($podiumpoten));
	var_dump(intval($podiumdelen));
}


Warning: A non-numeric value encountered in /home/sds/domains/stage-drapes.nl/public_html/new/includes/podium-totaal-berekening.php on line 67
int(0) int(40) int(10)

En dit zou het moeten zijn:
$aantalpoten['berekening_aantal'] = 40 (volgens database)
$podiumpoten += $aantalpoten['berekening_aantal']
$podiumdelen = 40/4
While mist { en }
}else{    
    while($aantalpoten = $aantalpotensql->fetch_assoc())
   { 
    $podiumpoten                +=     intval($aantalpoten['berekening_aantal']);
    $podiumdelen                =    $podiumpoten/4;    
    $rekenpodiumpoten            =     $podiumpoten*$factorpoten;
    
    var_dump(intval($aantalpoten['berekening_aantal']));
    var_dump(intval($podiumpoten));
    var_dump(intval($podiumdelen));
   }
} 
Wat is de inhoud van $podiumpoten vóór regel 24?
- SanThe - op 29/03/2022 07:41:54

While mist { en }
}else{    
    while($aantalpoten = $aantalpotensql->fetch_assoc())
   { 
    $podiumpoten                +=     intval($aantalpoten['berekening_aantal']);
    $podiumdelen                =    $podiumpoten/4;    
    $rekenpodiumpoten            =     $podiumpoten*$factorpoten;
    
    var_dump(intval($aantalpoten['berekening_aantal']));
    var_dump(intval($podiumpoten));
    var_dump(intval($podiumdelen));
   }
} 



Dat is inderdaad raar, inmiddels opgelost, maar veranderd nog niets aan de melding.

De waarde van $podiumpoten voor regel 24 is 0
Doe eens zo:

<?php

}else{
while($aantalpoten = $aantalpotensql->fetch_assoc())
{
$podiumpoten += intval($aantalpoten['berekening_aantal']);
$podiumdelen = $podiumpoten/4;
$rekenpodiumpoten = $podiumpoten*$factorpoten;

echo '<br>podiumpoten: ' . $podiumpoten;
echo '<br>podiumdelen: ' . $podiumdelen;

}
}
Warning: A non-numeric value encountered in /home/sds/domains/stage-drapes.nl/public_html/new/includes/podium-totaal-berekening.php on line 67

podiumpoten: 20
podiumdelen: 5

[size=xsmall]Toevoeging op 29/03/2022 15:40:33:[/size]

Kan het te maken hebben met $connectioon?

$connection = new mysqli("localhost", "website", "123456", "website");
if (mysqli_connect_errno())
{
printf("Could not connect to the database. Errormessage %s\n", mysqli_connect_error());
}

Dat is wel mysqli en mijn query niet/
Ik zou eens proberen om je functies ook gelijk te trekken met de object-georienteerde manier.
in de code die je geeft, voer je de query niet uit.

Daarbij gebruik je een variabele dubbel:
$aantalpotensql bevat eerst de query.

En nadat je de plek voorbij bent waar je de query (met oude mysql-functie) uit zou voeren, zou aantalpotensql een resultset kunnen bevatten. (maar die regel is uitgecommenteerd)

Hoe dan verderop je array toch een waarde bevat, is wel raar.

- Ariën - op 29/03/2022 15:58:43

Ik zou eens proberen om je functies ook gelijk te trekken met de object-georienteerde manier.

Het stomme aan het hele verhaal is dat ik 2 jaar geleden heel veel geld heb neer geteld om dit script up to date te laten maken, maar hoe meer ik me aan het inlezen ben, hoe meer ik erachter kom dat de zo genaamde update alsnog verouderd is en niet volledig is doorgevoerd.


[size=xsmall]Toevoeging op 29/03/2022 16:18:48:[/size]

Ivo P op 29/03/2022 16:05:07

in de code die je geeft, voer je de query niet uit.

Daarbij gebruik je een variabele dubbel:
$aantalpotensql bevat eerst de query.

En nadat je de plek voorbij bent waar je de query (met oude mysql-functie) uit zou voeren, zou aantalpotensql een resultset kunnen bevatten. (maar die regel is uitgecommenteerd)

Hoe dan verderop je array toch een waarde bevat, is wel raar.




Met deze regel voer ik de query toch uit?

$aantalpoten = $aantalpotensql->fetch_assoc()){
Nee, daarmee zorg je ervoor dat de data van de result in een array wordt omgezet.
Je zult dus $connection->query(....) moeten gebruiken.

Reageren