tail Posted January 1, 2010 Share Posted January 1, 2010 I'm trying to create a script to view individual user permissions. Right now it is working, but I feel that the code is very inefficient and there is a better way to do it, but I'm not sure how. The permissions are stored in the database like this: "view,add,edit,delete". For example, if a user can view and edit news, it would appear as follows: "1,0,1,0". Here is the current code: mysql_connect(localhost,****,****); @mysql_select_db('login') or die("Cannot select database"); $rows = mysql_num_rows(mysql_query("SELECT * FROM `permissions` WHERE `user_id`='1'")); if ($rows == 0) { echo "None"; } else { $type_perms = array('News','Users','Games','Music','Polls','IP Ban','Settings','Counter'); $perms=mysql_fetch_array(mysql_query("SELECT `news`,`users`,`music`,`games`,`polls`,`ipban`,`settings`,`counter` FROM `permissions` WHERE `user_id`='5'")); echo '<table style="font-size:10pt;" border="1"><tr><td></td>'; foreach($type_perms as $name) { echo '<td>'.$name.'</td>'; } $news=explode(',',$perms['news']); for($i=0;$i<=4;$i++) { if($news[$i]==1) { $news[$i]='Yes'; } elseif($news[$i]==0) { $news[$i]='No'; } } $users=explode(',',$perms['users']); for($i=0;$i<=4;$i++) { if($users[$i]==1) { $users[$i]='Yes'; } elseif($users[$i]==0) { $users[$i]='No'; } } $games=explode(',',$perms['games']); for($i=0;$i<=4;$i++) { if($games[$i]==1) { $games[$i]='Yes'; } elseif($games[$i]==0) { $games[$i]='No'; } } $music=explode(',',$perms['music']); for($i=0;$i<=4;$i++) { if($music[$i]==1) { $music[$i]='Yes'; } elseif($music[$i]==0) { $music[$i]='No'; } } $polls=explode(',',$perms['polls']); for($i=0;$i<=4;$i++) { if($polls[$i]==1) { $polls[$i]='Yes'; } elseif($polls[$i]==0) { $polls[$i]='No'; } } $ipban=explode(',',$perms['ipban']); for($i=0;$i<=4;$i++) { if($ipban[$i]==1) { $ipban[$i]='Yes'; } elseif($ipban[$i]==0) { $ipban[$i]='No'; } } $settings=explode(',',$perms['settings']); for($i=0;$i<=2;$i++) { if($settings[$i]==1) { $settings[$i]='Yes'; } elseif($settings[$i]==0) { $settings[$i]='No'; } } $counter=explode(',',$perms['counter']); for($i=0;$i<=4;$i++) { if($counter[$i]==1) { $counter[$i]='Yes'; } elseif($counter[$i]==0) { $counter[$i]='No'; } } echo '</tr><tr><td>View</td><td>'.$news[0].'</td><td>'.$users[0].'</td><td>'.$games[0].'</td><td>'.$music[0].'</td><td>'.$polls[0].'</td><td>'.$ipban[0].'</td><td>'.$settings[0].'</td><td>'.$counter[0].'</td></tr><tr><td>Add</td><td>'.$news[1].'</td><td>'.$users[1].'</td><td>'.$games[1].'</td><td>'.$music[1].'</td><td>'.$polls[1].'</td><td>'.$ipban[1].'</td><td> </td><td>'.$counter[1].'</td></tr><tr><td>Edit</td><td>'.$news[2].'</td><td>'.$users[2].'</td><td>'.$games[2].'</td><td>'.$music[2].'</td><td>'.$polls[2].'</td><td>'.$ipban[2].'</td><td> </td><td>'.$counter[2].'</td></tr><tr><td>Delete</td><td>'.$news[3].'</td><td>'.$users[3].'</td><td>'.$games[3].'</td><td>'.$music[3].'</td><td>'.$polls[3].'</td><td>'.$ipban[3].'</td><td>'.$settings[1].'</td><td>'.$counter[3].'</td></tr>'; echo '</table>'; } Thanks in advance for any help you may be able to give me. Link to comment https://forums.phpfreaks.com/topic/186841-put-values-from-sql-into-html-table/ Share on other sites More sharing options...
rajivgonsalves Posted January 1, 2010 Share Posted January 1, 2010 I think is pretty fine you could try something like this <?php mysql_connect(localhost,****,****); @mysql_select_db('login') or die("Cannot select database"); $rows = mysql_num_rows(mysql_query("SELECT * FROM `permissions` WHERE `user_id`='1'")); if ($rows == 0) { echo "None"; } else { $type_perms = array('News','Users','Games','Music','Polls','IP Ban','Settings','Counter'); $perm_names = array('View', 'Add', 'Edit', 'Delete'); $perms_values = array('No', 'Yes'); $perms=mysql_fetch_array(mysql_query("SELECT `news`,`users`,`music`,`games`,`polls`,`ipban`,`settings`,`counter` FROM `permissions` WHERE `user_id`='5'")); echo '<table style="font-size:10pt;" border="1"><tr><td></td>'; echo '<td>' . implode('</td><td>', $type_perms) . '</td></tr>'; for($i=0;$i<4;$i++) { echo '<tr><td>' . $perm_names[$i] . '</td>'; foreach ($type_perms as $perm) { $perm = str_replace(' ', '', strtolower($perm)); $values = explode(',', $perms[$perm]); echo '<td>' . $perms_values[$values[$i]] . '</td>'; } echo '</tr>'; } echo '</table>'; } ?> Link to comment https://forums.phpfreaks.com/topic/186841-put-values-from-sql-into-html-table/#findComment-986712 Share on other sites More sharing options...
tail Posted January 1, 2010 Author Share Posted January 1, 2010 Thanks again, rajivgonsalves. One more thing: the permissions for "Settings" only have two options, "view,edit". I tried modifying the code you gave me but it didn't work out so well. Here's what I tried: for($i=0;$i<4;$i++) { echo '<tr><td>' . $perm_names[$i] . '</td>'; foreach ($type_perms as $perm) { if($perm!="Settings") { $perm = str_replace(' ', '', strtolower($perm)); $values = explode(',', $perms[$perm]); echo '<td>' . $perms_values[$values[$i]] . '</td>'; } else { if($i==0 || $i==2) { $perm = str_replace(' ', '', strtolower($perm)); $values = explode(',', $perms[$perm]); echo '<td>' . $perms_values[$values[$i]] . '</td>'; } else { echo '<td></td>'; } } } echo '</tr>'; } Link to comment https://forums.phpfreaks.com/topic/186841-put-values-from-sql-into-html-table/#findComment-986831 Share on other sites More sharing options...
tail Posted January 1, 2010 Author Share Posted January 1, 2010 Nevermind I got it working. $type_perms = array('News','Users','Games','Music','Polls','IP Ban','Settings','Counter'); $perm_names = array('View', 'Add', 'Edit', 'Delete'); $perms_values = array('No', 'Yes'); $perms=mysql_fetch_array(mysql_query("SELECT `news`,`users`,`music`,`games`,`polls`,`ipban`,`settings`,`counter` FROM `permissions` WHERE `user_id`='5'")); echo '<table style="font-size:10pt;" border="1"><tr><td></td><td>'.implode('</td><td>',$type_perms).'</td></tr>'; for($i=0;$i<4;$i++) { echo '<tr><td>' . $perm_names[$i] . '</td>'; foreach ($type_perms as $perm) { if($perm!="Settings") { $perm = str_replace(' ', '', strtolower($perm)); $values = explode(',', $perms[$perm]); echo '<td>' . $perms_values[$values[$i]] . '</td>'; } else { if($i==0) { $perm = strtolower($perm); $values = explode(',', $perms[$perm]); echo '<td>' . $perms_values[$values[0]] . '</td>'; } elseif($i==2) { $perm = strtolower($perm); $values = explode(',', $perms[$perm]); echo '<td>' . $perms_values[$values[1]] . '</td>'; } else { echo '<td></td>'; } } } echo '</tr>'; } echo '</table>'; Thanks again! Link to comment https://forums.phpfreaks.com/topic/186841-put-values-from-sql-into-html-table/#findComment-986836 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.