Tycoon Talk
Become a Big fish!
The number 1 forum for online business!
Post topics, ask questions, share your knowledge.
Tycoon Talk is part of Freelancer.com - find skilled workers online at a fraction of the cost.

PHP Forum


You are currently viewing our PHP Forum as a guest. Please register to participate.
Login



Freelance Jobs

Reply
Admin Edit User's Information
Old 07-18-2010, 05:30 PM Admin Edit User's Information
Skilled Talker

Posts: 83
Trades: 0
Having a few problems with my Admin Page that lists all registered users with some of their information.
I have a Delete button (which deletes the user permanently) and a Ban button (which bans user until I unban them). Both of these buttons have their own javascript that asks for a confirmation before going through with the request of banning or deleting a user. The confirm window show up correctly, with the option to click OK, or Cancel. When I click OK, it deletes or bans the user successfully, however if I hit cancel, it does not stop the script. It deletes or bans the user. That's the first problem.

The next:

At the end of the page I have a Submit button. So for example, I change any of the user's information on the current page, I can hit submit, and update all the user's information in the database. I am unsure how to set this up, because it needs to go through each row and update them one at a time as to not give all users the same updated value.

I also need to create a Dropdown Menu, or input field, which allows me to choose a number (50, 100, 300, 500, etc) of users to show per page. I have no idea how to go about doing this.

PHP Code:
<?php
session_start
();
include_once(
'../inc/connect.php');

if(!isset(
$_SESSION['sort_counter']))
{
$_SESSION['sort_counter'] = 1;}

if((
$_SESSION['sort_counter']%2) == 0){ //test even value
  
$sortcount "DESC";
}else{ 
//odd value
  
$sortcount "";
}

// $result = mysql_query("SELECT * FROM users ORDER BY id");  ORIGINAL
$result mysql_query("SELECT * FROM users LEFT JOIN userstats ON userstats.id = users.id ORDER BY users.id"); 
// $result = mysql_query("SELECT * FROM users JOIN users ON userstats.id = userstats.id ORDER BY id");

$today date("Y-m-d");

$sort $_GET['sort'];
$delete $_GET['delete'];
$ban $_GET['ban'];
$submit $_POST['submit'];

if (
$sort=='id'){ 

    
// $result = mysql_query("SELECT * FROM users ORDER BY id");  
$result mysql_query("SELECT * FROM users LEFT JOIN userstats ON userstats.id = users.id ORDER BY users.id $sortcount"); 
$_SESSION['sort_counter'] = $_SESSION['sort_counter'] + 1//increment after every run
 
}
if (
$sort=='username'){ 

    
// $result = mysql_query("SELECT * FROM users ORDER BY username"); 
$result mysql_query("SELECT * FROM users LEFT JOIN userstats ON userstats.id = users.id ORDER BY users.username $sortcount"); 
$_SESSION['sort_counter'] = $_SESSION['sort_counter'] + 1//increment after every run
}
if (
$sort=='email'){ 

    
// $result = mysql_query("SELECT * FROM users ORDER BY email"); 
$result mysql_query("SELECT * FROM users LEFT JOIN userstats ON userstats.id = users.id ORDER BY users.email $sortcount"); 
$_SESSION['sort_counter'] = $_SESSION['sort_counter'] + 1//increment after every run
}
if (
$sort=='type'){ 

    
// $result = mysql_query("SELECT * FROM users ORDER BY member"); 
$result mysql_query("SELECT * FROM users LEFT JOIN userstats ON userstats.id = users.id ORDER BY users.member $sortcount"); 
$_SESSION['sort_counter'] = $_SESSION['sort_counter'] + 1//increment after every run
}
if (
$sort=='referrer'){ 

    
// $result = mysql_query("SELECT * FROM users ORDER BY referrer"); 
$result mysql_query("SELECT * FROM users LEFT JOIN userstats ON userstats.id = users.id ORDER BY users.referrer $sortcount"); 
$_SESSION['sort_counter'] = $_SESSION['sort_counter'] + 1//increment after every run
}
if (
$sort=='level'){ 

    
// $result = mysql_query("SELECT * FROM userstats ORDER BY level"); 
$result mysql_query("SELECT * FROM userstats LEFT JOIN users ON users.id = userstats.id ORDER BY userstats.level $sortcount"); 
$_SESSION['sort_counter'] = $_SESSION['sort_counter'] + 1//increment after every run
}
if (
$sort=='exp'){ 

    
// $result = mysql_query("SELECT * FROM userstats ORDER BY exp"); 
$result mysql_query("SELECT * FROM userstats LEFT JOIN users ON users.id = userstats.id ORDER BY userstats.exp $sortcount"); 
$_SESSION['sort_counter'] = $_SESSION['sort_counter'] + 1//increment after every run
}
if (
$sort=='credits'){ 

    
// $result = mysql_query("SELECT * FROM userstats ORDER BY credits"); 
$result mysql_query("SELECT * FROM userstats LEFT JOIN users ON users.id = userstats.id ORDER BY userstats.credits $sortcount"); 
$_SESSION['sort_counter'] = $_SESSION['sort_counter'] + 1//increment after every run
}

if (
$delete && isset($_GET['id']))
{
    
mysql_query('DELETE FROM users WHERE id = ' . (int)$_GET['id']);
    
mysql_query('DELETE FROM userstats WHERE id = ' . (int)$_GET['id']);
    echo 
"<SCRIPT language='JavaScript'><!--
  window.location='users.php';//-->
</SCRIPT>"
;
}  

if (
$ban=="true" && isset($_GET['id']))
{
    
mysql_query('UPDATE `users` SET `active`="no" WHERE id = ' . (int)$_GET['id']);
    echo 
"<SCRIPT language='JavaScript'><!--
  window.location='users.php';//-->
</SCRIPT>"
;
}  
if (
$ban=="false" && isset($_GET['id']))
{
    
mysql_query('UPDATE `users` SET `active`="yes" WHERE id = ' . (int)$_GET['id']);
    echo 
"<SCRIPT language='JavaScript'><!--
  window.location='users.php';//-->
</SCRIPT>"
;
}  

// head
echo "
<html>
<head>
<title>Users</title>
<style>
a:link{
text-decoration: none;
color: #519904;
}
a:visited{
text-decoration: none;
color: #519904;
}
a:hover{
text-decoration: none;
color: #4296ce;
}
#joined{
position: relative;
width: 97px;
margin-left: auto;
margin-right: auto;
top: -550px;
}
</style>
</head>
<body>
"
;

echo 
"<h2 align='center'>Users</h2><br /><table border='1' align='center'>
<tr>
<th bgcolor='#cccccc'><a href='users.php?sort=id'>ID</a></th>
<th bgcolor='#cccccc'><a href='users.php?sort=username'>Username</a></th>
<th bgcolor='#cccccc'><a href='users.php?sort=email'>Email</a></th>
<th bgcolor='#cccccc'><a href='users.php?sort=type'>Type</a></th>
<th bgcolor='#cccccc'><a href='users.php?sort=referrer'>Referrer</a></th>

<!-- Level, Exp, and Credits are in the table called userstats -->

<th bgcolor='#cccccc'><a href='users.php?sort=level'>Level</a></th>
<th bgcolor='#cccccc'><a href='users.php?sort=exp'>Exp</a></th>
<th bgcolor='#cccccc'><a href='users.php?sort=credits'>Credits</a></th>
<th bgcolor='#cccccc'><a href='users.php'>Delete</a></th>
<th bgcolor='#cccccc'><a href='users.php'>Ban</a></th>
</tr><form>"
;
echo 
"<script type='text/javascript'>
function show_ban()
{
var r=confirm('Ban?');
if (r==true)
  {
  // Ban
  }
else
  {
  // Don't ban
  }
}
</script>"
;

echo 
"<script type='text/javascript'>
function show_unban()
{
var r=confirm('Unban?');
if (r==true)
  {
  // Unban
  }
else
  {
  // Don't Unban
  }
}
</script>"
;

echo 
"<script type='text/javascript'>
function show_delete()
{
var r=confirm('Delete?');
if (r==true)
  {
  // Delete
  }
else
  {
  // Don't delete
  }
}
</script>"
;

$recentmembers 0;
while(
$row mysql_fetch_array($result))
  {
  
$joined $row['joindate'];
  if (
$joined==$today){
  
$recentmembers += 1;
  }
  
$active $row['active'];
  
$color "#ffffff";
  
$banned "Ban";
  if (
$active=='no'){
  
$color "#f43636";
  
$banned "Unban";
  
$active "false";
  
$alert "show_unban";
  }
  else{
  
$active "true";
  
$alert "show_ban";
  }
  if (
$row['member'] == 1){
  
$typecolor "#72A4D2";
  }
  if (
$row['member'] == 0){
  
$typecolor "#eeeeee";
  }
  if (
$row['member'] == 9){
  
$typecolor "#00cc00";
  }
  
  
  echo 
"<tr>";
  echo 
"<td align='center' width='40' bgcolor='$color'>" .$row['id']. "</td>";
  echo 
"<td align='center' width='130'><input type='text' name='username' value='" .$row['username']. "'></td>";
  echo 
"<td align='center' width='230'><input type='text' name='email' value='" .$row['email']. "' size='35'></td>";
  echo 
"<td align='center' width='10'><input type='text' name='member' value='" .$row['member']. "' size='2' style='background-color: $typecolor'></td>";
  echo 
"<td align='center' width='130'><input type='text' name='referrer' value='" .$row['referrer']. "'></td>";
  echo 
"<td align='center' width='10'><input type='text' name='level' value='" .$row['level']. "' size='2'></td>";
  echo 
"<td align='center' width='10'><input type='text' name='exp' value='" .$row['exp']. "' size='10'></td>";
  echo 
"<td align='center' width='10'><input type='text' name='credits' value='" .$row['credits']. "' size='20'></td>";
  echo 
"<td align='center' width='10'><a href='users.php?delete=true&id=" .$row['id']. "' onclick='show_delete()'>Delete</a></td>";

  echo 
"<td align='center' width='10'><a href='users.php?ban=$active&id=" .$row['id']. "' onclick='$alert()'>$banned</a></td>";
  echo 
"</tr>";
  }
 
echo 
"</table><br /><center><input type='submit' name='submit' value='Submit Changes'><input type='reset' name='reset' value='Reset'></form></center>";
echo 
"<br /><div id='joined'>Joined Today: ".$recentmembers."</div>";

// Footer
echo "
</body>
</html>
"
;

// Change User's Information

if (isset($submit)){

    
// UPDATE USERS INFORMATION FOR ONLY THE ROWS THAT HAVE BEEN MODIFIED
    

}

?>
Any input appreciated.

Thanks for those who keep the help coming!
Smudly is offline
Reply With Quote
View Public Profile
 
 
Register now for full access!
Old 07-20-2010, 06:52 PM Re: Admin Edit User's Information
britoniah3480's Avatar
Average Talker

Posts: 17
Name: Darz
Trades: 0
http://www.devx.com/tips/Tip/37647
britoniah3480 is offline
Reply With Quote
View Public Profile
 
Old 07-26-2010, 08:31 PM Re: Admin Edit User's Information
Physicsguy's Avatar
404 - Title not found

Posts: 920
Name: Scott Kaye
Location: Ontario
Trades: 0
1: If user clicked cancel: exit("Clicked Cancel");
2: Have one giant <form> tag around the page, so it catches every input box's value. User isset() to check which ones need updating.
3: Pagination. Use SQL's LIMIT. Example:
LIMIT 0, 10 will show records from 0 (first one) to 10.

Such as $result = mysql_query("SELECT * FROM users LEFT JOIN userstats ON userstats.id = users.id ORDER BY users.id LIMIT 0, 50");
will show first 50 records.
__________________
Check out my
Please login or register to view this content. Registration is FREE
or my
Please login or register to view this content. Registration is FREE
!
Physicsguy is offline
Reply With Quote
View Public Profile
 
Reply     « Reply to Admin Edit User's Information
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off





   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML



Page generated in 0.12708 seconds with 12 queries