webForumDet fria alternativet

Uppdatera poster i MySQL som inte alltid finns

PHP

0 svar · 184 visningar · startad av Alpha II

Medlem sedan maj 20002 993 inlägg
Frågan#1

Jag sitter och testar att skriva ihop ett rättighetssytem som fungerar så som sgtpepper skrev här, http://www.webforum.nu/showthread.php?s=&postid=720712#post720712 .

Just nu försöker jag få sidan där man ställer in olika rättigheter för en viss grupp att fungera. Sidan ser ut ungefär såhär, http://member.webforum.nu/Alpha II/form.htm .

Just nu ser min kod för att uppdatera rättigheterna ut så här:

		$query = $db->query("select objID from objects");
		while($row = $db->fetch_row($query))
		{
			$objID = $row[0];
			
			$new_access = 0;

			if($_POST[$objID.'_read'])
				$new_access ^= 1;
			if($_POST[$objID.'_create'])
				$new_access ^= (1<<1);
			if($_POST[$objID.'_update'])
				$new_access ^= (1<<2);
			if($_POST[$objID.'_delete'])
				$new_access ^= (1<<3);

			$db->query("update acl
					set access = '$new_access'
					where groupID = '$_POST[groupID]'
					and objID = '$objID'");
		}

Men det är inte alltid säkert att det redan finns en post med rätt groupID och objID. Jag testade att använda mysql_affected_rows och ifall om funktionen returnerade 0 så gjorde jag en insert istället, men det fungerade inte. :( Hur skall det göras? (Denna fråga kanske egentligen här till SQL forumet, jag vet inte..)

Sen så undrar jag också ifall om det här är den bästa lösningen, att döpa checkboxarna till {objID}_read, {objID}_update osv och sedan tvingas loopa igenom en query för att få tag i deras objID. JAg skulle vilja ha en snyggare lösning. :)

791 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
664 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
663 ms — ändringar (db)