Jump to content

Put values from sql into html table


tail

Recommended Posts

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

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>';
}
?>

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>';
}

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!

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.