Hoi,

Ik ben bezig met een soort van criminal game maar een gedeelte php werkt niet.
De variabel gvor wordt niet toegevoegd in database.


<?

if($rang == 7){
$vor1 = '0,5' ;
$vor2 = '0,9' ;
$vor3 = '1,15' ;
$vor4 = '1,45' ;
$vor5 = '2' ;
}

// Var. $kracht juiste waarde geven

if($_POST['train']) {

if($_POST['1'] == 1){ $vor = $vor1 ; $tijd = 5 ;}
if($_POST['1'] == 2){ $vor = $vor2 ; $tijd = 10 ;}
if($_POST['1'] == 3){ $vor = $vor3 ; $tijd = 15 ;}
if($_POST['1'] == 4){ $vor = $vor4 ; $tijd = 20 ;}
if($_POST['1'] == 5){ $vor = $vor5 ; $tijd = 30 ;}

//Krachtijd berekenen
$traintijd = time() + (60*$tijd);
$traintijd = date("d-m-Y H:i:s",$traintijd) ;
$traintijd1 = date("H:i:s",$traintijd) ;

//Invoeren in database

mysql_query ("UPDATE users SET gvor=(gvor + '".$vor."'), krachttijd = '".$traintijd."' WHERE username='paul'") or die ( mysql_error() );

echo '<a href='.$_SERVER['PHP_SELF'].'>[Terug]</a><br />';
die('Je bent voor de komende '.$tijd.' minuten aan het trainen.');
}


?>


In heb de mysql query uitgevoerd in PHPmyadmin en daar ondervond ik geen probleem.

Paul
je krijgt ook geen foutmelding?
<?
mysql_query ("UPDATE users SET gvor = gvor + '".$vor."', krachttijd = '".$traintijd."' WHERE username = 'paul'") or die ( mysql_error() );
?>Probeer hem anders zo?
echo je query eens , ik gok dat $vor leeg is of niet bestaat, mede omdat dit
$_POST['1']
niet mag, vars mogen niet beginenn met een getal (dacht ik)
Wes heeft volkomen gelijk, dan naamgevingen zijn niet goed. Daarnaast maak je het jezelf onnodig lastig met programeren. 1, 2 of 3 zegt toch helemaal niets over de inhoud van deze variabele? Het is dus dom om dit soort namen te gebruiken, net zoals $var1 en $var2 helemaal nergens op zouden slaan: Variabele nummer 1, variabele nummer 2, tja, wat moet je daar mee?

Verder is $traintijd = date("d-m-Y H:i:s",$traintijd) ; fout, dit kan nooit een datum zijn die je kunt opslaan in de database en/of waar je nog eens mee kunt gaan rekenen of op sorteren. De database heeft het datatype DATETIME die het formaat yyyy-mm-dd hh:mm:ss als input vereist. Dat is een ISO-formaat en daar kun je nog eens een keer wat mee gaan doen. Zie de hoofstukken 9 en 12.5 van de MySQL-handleiding.
Even wat ophelderen:

$vor staat voor vorderingen
1,2,3,4,5,6 staat voor de optie die je hebt gekozen.
En traintijd met ik nog veranderen.

Ik heb aan het einde $vor geechoed en daar gaf die het gewoon goed weer vreemd hè ?!
Maarja hoe los ik dit op
0 komma 5, dat is de vertaling van 0,5. Dat is dus een stuk tekst en geen getal waar je mee kunt rekenen. 0.5 daarintegen is een fraai getal waar je mee kunt rekenen.

Wanneer $vor staat voor de variabele vordering (engels: progress), dan lijkt mij $progress of evt. $vordering meer voor de hand liggen. Dan is het duidelijk waar je het over hebt. Vooral handig wanneer je over een half jaar (0.5 jaar ;) ) onderhoud gaat plegen, dat scheelt een hoop tijd en bugs.

$1 => $option_1 , al blijft deze beroerd. Wát is nu eigenlijk 'optie 1' ?

Reageren