maexus Posted March 27, 2006 Share Posted March 27, 2006 This used to work before but when I rewrote it, it doesn't..My userlevels are stored as constants[code]//User Levelsdefine('ADMIN', 4);define('MOD', 3);define('USER', 2);define('GUEST', 1);define('BANNED', 0);[/code]My registration script stores these userlevel titles as a string to access later on during login and page security. Before I could say..[code]$results = mysql_query('some query');$row = mysql_fetch_assoc($results);echo $row['userlevel'];[/code]That should output like USER which is a constant so it really outputs 2 into the script. That's what it used to do but now it outputs USER, which is no good. I have to end up using[code]$user['level'] = constant($row['userlevel']);[/code]Now this works but it's annoying because I never had to do this before... My question is, what is the best way to store a constant name in a DB then spit the value back out, not as a string, but as something the PHP parsing will automaticly parse as a constant?Sorry if this is confusing. Link to comment https://forums.phpfreaks.com/topic/5902-storing-and-accessing-constants-in-a-database/ Share on other sites More sharing options...
Guest footballkid4 Posted March 27, 2006 Share Posted March 27, 2006 If you really wanted to, you could store: define( "MOD" , 3 );In the DB, and then run eval() when you pull things from the DB...but that's not the best way to do it.You can store the information like this: MOD|3Then your script would look similar to:[code]<?php$query = "queryhere";$result = mysql_fetch_array( $query ) or die( mysql_error() );while ( $row = mysql_fetch_array( $result ) ){ $levels = explode( "|" , $row['userlevel'] ); define( $levels[0] , $levels[1] );}?>[/code] Link to comment https://forums.phpfreaks.com/topic/5902-storing-and-accessing-constants-in-a-database/#findComment-21081 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.