webForumDet fria alternativet

Update + mysql ???

PHPur PHP

2 svar · 359 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#1

Jag har följande kod för att ändra antal gb på en användares profil + spara en logg om detta.
Men det sparas en logg fast att jag INTE har ändrat något. :q

Hur löser jag det, så att det endast sparas en logg när jag ändrar fältet ($_POST[upp]), och INTE annars?
:r

if ((isset($_POST['upp'])) && (($upp = $_POST['upp']) != ($curupp = $user['uploaded'])))

	{
		    $modcomment = gmdate("Y-m-d") . " - Uppl. ändrat från '" .round($curupp/1073741824, 2). "' GB till '$upp' GB av " . $CURUSER['username'] . ".\n" . $modcomment;
 
	$upp2 = $upp*1073741824; 
	$updateset[] = "uploaded = " . sqlesc($upp2);

	}
Medlem sedan juli 20041 271 inlägg
#2

Ingen som vet? :(

EDIT:

if ((isset($_POST['upp'])) && (($upp = $_POST['upp']) != ($curupp = $user['uploaded'])))

..betyder väl att koden ska köras om $_POST[upp] inte är likamed (=) $user[uploaded]?

Tänker jag rätt?
Om ja, så verkar det inte fungera riktigt.
Databasen uppdateras ändå fast att jag INTE har ändrat $_POST[upp].

Medlem sedan mars 20034 471 inlägg
#3

Hmm testa två saker:

  1. Jobba inte med tilldelning och jämförelse i samma uttryck:
 if (isset($_POST['upp']) && $_POST['upp'] != $user['uploaded']) { //Jämför
   $upp = $_POST['upp'];            //Tilldela
   $curupp = $user['uploaded'];    //Tilldela
   //osv...
}

Annars vet jag inte riktigt vad det är för värden du jämför. Ev skickar tilldelningen i sig ut ett värde för att indikera att det gick tex, och i så fall jämför du inte det du hade tänkt dig.

  1. Undersök olikhet med !== inte !=.
    '' != 0 är falskt, medan '' !== 0 är sant eftersom den senare även jämför typer.
175 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
171 ms — hämta tråd, inlägg och bilagor (db)