I have a form comprising of a table of users. An Admin can select multiple members via check boxes and mark them down. I am trying to echo the username of each successful mark on a success message to the user. However, my variable appears to be 'null'. What am i doing wrong? Below is my code:
if(empty($_POST['cap']) === false){
$week = date("W");
$users = $_POST['user'];
if(empty($users) === false){
$cap_check = mysqli_query($con, "SELECT week FROM caps WHERE week = '$week'")or die(mysqli_error($con));
if(mysqli_num_rows($cap_check) == 0){
mysqli_query($con, "INSERT INTO caps (week, start_date, end_date, upgrades) VALUES('$week','','','')")or die(mysqli_error($con));
}
foreach($users as $user){
$user = mysqli_real_escape_string($con, $user);
$qry_check = mysqli_query($con, "SELECT capped_users.user, users.username FROM capped_users
LEFT JOIN users ON capped_users.user = users.user_id
WHERE user ='$user' AND cap_week = '$week'")or die(mysqli_error($con));
$username = mysqli_fetch_assoc($qry_check);
$name = $username['username'];
if(mysqli_num_rows($qry_check) == 0){
mysqli_query($con, "INSERT INTO capped_users(week, user) VALUES('$week','$user')")or die(mysqli_error($con));
$confirm = mysqli_query($con, "SELECT user FROM capped_users WHERE user ='$user' AND week = '$week'")or die(mysqli_error($con));
if(mysqli_num_rows($confirm) == 1){
var_dump($name);
$success_msg[] = '<b>'.$name.'</b>Member has been marked down for the cap this week.';
}else
$errors[]= 'Error! '.$name.' could not be marked down for this weeks cap.';
}else
$errors[]= '<b>'.$name.'</b> is already marked in the Cap list for this week.';
}
}else{
$errors[]= 'No members have been selected';
}
}
Note that:
$errors[]= '<b>'.$name.'</b> is already marked in the Cap list
seems to echo the username correctly. However, in:
$success_msg[] = '<b>'.$name.'</b>Member has been marked down for the cap this week.';
it only echoes "Member has been marked down for the cap this week.
What am I doing wrong?