2010-11-01 4 views
0

J'ai créé une page pour afficher tous les utilisateurs concernant ou en dessous d'un gestionnaire spécifique. Si un utilisateur s'est inscrit, son compte sera désactivé jusqu'à ce que la personne concernée l'active. J'ai affiché tous les utilisateurs et une case à cocher pour désactiver ou activer. lors de la soumission, la commande insert ne fonctionne pas et rien n'est modifié dans la base de données. J'ai l'ID utilisateur qui est caché mais ne peux pas l'appliquer. pouvez-vous m'aider s'il vous plaîtInsérer via la case à cocher

<?php 

//get userid from login session 

     $memberid = $_SESSION['SESS_MEMBER_ID']; 

    //display all users concerning the user(login) is leader 
     $sql = mysql_query("SELECT * FROM user WHERE userid in (SELECT userid FROM dept_user WHERE lead_id = '$memberid')"); 

     //display results in table 
     print '<table border=1>'; 

print '<tr><td>Activate</td><td>First Name</td><td>Last Name</td><td>Email</td>td>Activate</td>'; 

print '<form method="GET" action="'.$PHP_SELF.'">'; 

$count = 0; 

    while($res = mysql_fetch_array($sql)){ 

$activate = $res['activate']; 

$checked = ''; 

$user = $res['userid']; 

    if ($activate=='1'){ 

$checked = 'checked'; 

     } 

print '<tr><td><input type="checkbox" value="'.$user.'" name="activate[]" '.$checked.'></td>'; 

print '<td>'.$res['firstname'].'</td>'; 

print '<td>'.$res['lastname'].'</td>'; 

    print '<td>'.$res['email'].'</td>'; 

    print '<td>'.$res['activate'].'</td></tr>'; 

    print '<input type="hidden" name="userid" value="'.$user.'">'; 

    $count++; 

    } 

    print '</table>'; 


print '<br />With selected do:<br />'; 

print '<select name="useridselect">'; 

print '<option value="Select">Select</option>'; 

print '<option value="1">Activate</option>'; 

print '<option value="0">Desactivate</option>'; 

print '</select>'; 

print '<br /><input type="submit" value="Submit" name="submit">'; 

print '</form>'; 

    $useridselect = $_GET['useridselect']; 

if(isset($_GET['submit'])){ 

foreach($_GET['activate'] as $value){ 

print_r($value); 

$update=mysql_query("UPDATE user SET activate='$useridselect' WHERE userid='$user'"); 
     } 

for($i=0;$i<$count;$i++){ 

$sql1="UPDATE user SET activate='$useridselect' WHERE userid='$user'"; 

$result1=mysql_query($sql1); 

} 

} else{ 

echo 'No actions yet performed'; 

} 

?> 
+0

Définir "ne fonctionne pas". Qu'est-ce qui se passe ou ne se passe pas? À quoi ressemble la requête? –

+0

Où sont les commandes pour la sélection de la base de données et la connexion à la base de données? – Victor

+0

connexion est sur un autre fichier .. tout fonctionne sauf la phase d'enregistrement. ne peux pas gérer l'useid. J'ai besoin de régler 1 pour activer et 0 pour désactiver – vimal

Répondre

1

Je pense que votre requête de mise à jour est échoué se que vous n'êtes pas attribuer une valeur de case à cocher:

 

foreach($_GET['activate'] as $value){ 

print_r($value); 
//Here instead of userid='$user' should be userid='$value' 
$update=mysql_query("UPDATE user SET activate='$useridselect' WHERE userid='$value'"); 
} 

Je ne comprends pas le but du code ci-dessous.

 
for($i=0;$i<$count;$i++){ 

$sql1="UPDATE user SET activate='$useridselect' WHERE userid='$user'"; 

$result1=mysql_query($sql1); 

} 

Remarque: Assurez-vous qu'au moins une des cases est cochée.

+0

thx dr. ça marche. Je souhaite ajouter une autre option sur la boîte de combox pour supprimer l'enregistrement. est-il possible de l'implémenter dans ?? – vimal

+0

Oui, c'est possible. –

0

Changez votre méthode GET à une méthode POST, de sorte que les valeurs cachées soient également POSTED au script. En outre, il est plus facile de séparer votre logique DB au lieu de renvoyer le même script encore et encore.

0

Vous pouvez également suivre la même logique pour la suppression. Utiliser un tableau de cases à cocher avec la valeur de l'ID utilisateur

Questions connexes