Hallo,

Ik heb een php script met een database connectie. Ik heb verschillende variabelen die GETALLEN ophalen uit mijn database. Ik kan deze variabelen echter niet optellen, aftrekken, delen , etc. Dit komt volgens mij omdat hij de variabelen niet als getallen, maar als tekst ziet.

Weet iemand hoe ik dit oplos? ik wil dus de variabele met elkaar kunnen laten optellen en andere sommetjes mee kunnen doen.


Mijn variabelen zien er allemaal ongeveer zo uit:

$next_level = mysql_result(mysql_query("SELECT 'exp_doel_experience' FROM runescape WHERE overig = '4'"), 0);
$var = " 99 ";
echo strval($var) + 1;

// geeft 100
het is niet echt bij optellen.

ik heb bijvoorbeeld deze variabelen:

$exp_eenheid = mysql_result(mysql_query("SELECT 'exp_eenheid' FROM runescape WHERE overig = '4'"), 0);

en

$totaal_getal = mysql_result(mysql_query("SELECT getal FROM runescape WHERE overig = '1'"), 0) + mysql_result(mysql_query("SELECT getal FROM runescape WHERE overig = '2'"), 0) + mysql_result(mysql_query("SELECT getal FROM runescape WHERE overig = '3'"), 0);

en $verschil_experience = $next_level - $current_level; (waarvan next_level en current_level ook resultaten zijn uit de database.



Met deze variabelen probeer ik dit sommetje te maken:

$vordering = (($totaal_getal * $exp_eenheid * 28) / $verschil_experience) * 100;

maar dit lukt niet. Hij geeft deze foutmelding:

Warning: Division by zero in ......... bestandsnaam + regel


-----
EDIT:

ik ga er van uit dat het komt omdat hij de variabelen niet als getallen ziet, omdat ik eerst achter de bovenste 3 variabelen gewoon getallen had gezet, en dat werkte gewoon goed.

Misschien heb ik een verkeerd type van de tabel gebruikt in MySQL. Welke moet ik gebruiken?

------

Als $verschil_experience 0 (nul) is of "" (leeg) geeft ie die error inderdaad.
$verschil_experience is NIET nul. Verschil experience = $next_level - $current level.

ofwel.. 1986068 - 1111990
Wat is 'getal' voor een veld in de database?
getal is INT in de database. En de rest ook. Wat voor veldtype in de database moet ik gebruikeN?
Waarschijnlijk gaat er iets mis met je Queries.
Echo je queries eens of zet er iets achter als or die.
En als overig in je db een int is dan niet tussen ' '

en int is op ich wel het goede veldtype
En controleer altijd of een variabele wel bestaat en een waarde heeft. isset() en empty() zijn hier de aangewezen functies. Verder natuurlijk altijd controleren of een query is gelukt en dan pas verder gaan.

Zodra je de aanname doet (!) dat een variabele wel bestaat en een waarde heeft waar jij iets mee kunt, weer je dat je een ernstige fout hebt begaan...

I assume => I make an ass of you and me... Zegt genoeg lijkt mij.
volgens mij betekent Warning: Division by zero in ...

dat hij niet door 0 kan delen. Ik ga dus alle query's controleren, bedankt voor de hulp.

Reageren