Jump to content

Recommended Posts

Hi!

 

I have followed this tutorial http://www.phpfreaks...-and-a-database and it is working fine but I would like to add four more columns with checkboxes to the right of the "Admin Privileges" column. You should be able to tick the checkboxes independantly of each other. I don't know how to adapt the php code sections to allow this. I hope someone can help.

 

Username Admin Privileges ColA ColB ColC ColD

Stewie [ ] [ ] [ ] [ ] [ ]

Peter [ ] [ ] [ ] [ ] [ ]

Brian [ ] [ ] [ ] [ ] [ ]

Meg [ ] [ ] [ ] [ ] [ ]

Lois .....and so on

Chris

Greased Up Deaf Guy

Quagmire

SubmitButton

 

 

****************** code ***********************

 

<?php

include("connect.php");

$updated = FALSE;

if(count($_POST) > 0){

$admin = $_POST['admin'];

array_map('intval',$admin);

$admin = implode(',',$admin);

mysql_query("UPDATE tutorial_users SET admin=0") or trigger_error(mysql_error(),E_USER_ERROR);

mysql_query("UPDATE tutorial_users SET admin=1 WHERE id IN ($admin)") or trigger_error(mysql_error(),E_USER_ERROR);

$updated=TRUE;

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR...l1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>phpfreaks checkbox tutorial</title>

</head>

<body>

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">

<?php

if($updated===TRUE){

echo '<div>Privileges Updated!</div>';

}

?>

<table>

<tr>

<th>Username</th>

<th>Admin Privileges</th>

</tr>

<?php

$sql = "SELECT id,username,admin FROM tutorial_users ORDER by id ASC";

$result = mysql_query($sql) or trigger_error(mysql_error(),E_USER_ERROR);

while(list($id,$username,$admin)=mysql_fetch_row($result)){

$checked = ($admin==1) ? 'checked="checked"' : '';

echo '<tr><td>'.$username.'</td><td><input type="checkbox" name="admin[]" value="'.$id.'" '.$checked.'/></td></tr>'."\n";

}

?>

<tr><td colspan="2"><input type="submit" name="submit" value="Update Privileges" /></td></tr>

</table>

</form>

</body>

</html>

Edited by deagle25
Link to comment
https://forums.phpfreaks.com/topic/271189-working-with-checkboxes-and-a-database/
Share on other sites

Are you just wondering how to add more checkboxes to the form? You should be able to add them to the while loop:

 

while(list($id,$username,$admin)=mysql_fetch_row($result)){
    $checked = ($admin==1) ? 'checked="checked"' : '';
    echo '<tr><td>'.$username.'</td><td><input type="checkbox" name="admin[]" value="'.$id.'" '.$checked.'/></td>';


    //<-- ADD CODE FOR THE CHECKBOXES HERE


    echo '</tr>'."\n";
}

 

 

As a side note, I would recommend that you avoid using PHP_SELF as the <form> tag's action for security reasons. More information can be found here:

http://seancoates.com/blogs/xss-woes

I need help updating both the php code sections below with the additional columns ColA, ColB, ColC, ColD. If I start with the first php code below - should I add a copy of the code below for each new column and replace 'admin' with ColA and so on?:

<?php

include("connect.php");

$updated = FALSE;

if(count($_POST) > 0){

$admin = $_POST['admin'];

array_map('intval',$admin);

$admin = implode(',',$admin);

mysql_query("UPDATE tutorial_users SET admin=0") or trigger_error(mysql_error(),E_USER_ERROR);

mysql_query("UPDATE tutorial_users SET admin=1 WHERE id IN ($admin)") or trigger_error(mysql_error(),E_USER_ERROR);

$updated=TRUE;

}

?>

 

************second section I need help with************

 

The same question as before - do I copy the code and replace 'admin' with ColA' and so on?

 

<?php

$sql = "SELECT id,username,admin FROM tutorial_users ORDER by id ASC";

$result = mysql_query($sql) or trigger_error(mysql_error(),E_USER_ERROR);

while(list($id,$username,$admin)=mysql_fetch_row($result)){

$checked = ($admin==1) ? 'checked="checked"' : '';

echo '<tr><td>'.$username.'</td><td><input type="checkbox" name="admin[]" value="'.$id.'" '.$checked.'/></td></tr>'."\n";

}

?>

 

Thaks

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.