PHP unexpected null variable fails to echo Mysql result -
i have form comprising of table of users. admin can select multiple members via check boxes , mark them down. trying echo username of each successful mark on success message user. however, variable appears 'null'. doing wrong? below code:
if(empty($_post['cap']) === false){ $week = date("w"); $users = $_post['user']; if(empty($users) === false){ $cap_check = mysqli_query($con, "select week caps week = '$week'")or die(mysqli_error($con)); if(mysqli_num_rows($cap_check) == 0){ mysqli_query($con, "insert caps (week, start_date, end_date, upgrades) values('$week','','','')")or die(mysqli_error($con)); } foreach($users $user){ $user = mysqli_real_escape_string($con, $user); $qry_check = mysqli_query($con, "select capped_users.user, users.username capped_users left join users on capped_users.user = users.user_id user ='$user' , 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 capped_users(week, user) values('$week','$user')")or die(mysqli_error($con)); $confirm = mysqli_query($con, "select user capped_users user ='$user' , 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 cap week.'; }else $errors[]= 'error! '.$name.' not marked down weeks cap.'; }else $errors[]= '<b>'.$name.'</b> marked in cap list week.'; } }else{ $errors[]= 'no members have been selected'; } }
note that:
$errors[]= '<b>'.$name.'</b> marked in cap list
seems echo username correctly. however, in:
$success_msg[] = '<b>'.$name.'</b>member has been marked down cap week.';
it echoes "member has been marked down cap week.
what doing wrong?
i fixed issue altering the: $confirm = mysqli_query
to:
$confirm = mysqli_query($con, "select capped_users.user, users.username capped_users left join users on capped_users.user = users.user_id user ='$user' , cap_week = '$week'")or die(mysqli_error($con)); $username = mysqli_fetch_assoc($confirm);
end echoing $username['username']
opposed echoing $name
. unclear why code posted in question not work. however, apparent that, somehow, mysql data assigned variable lost when run query, meaning have run query again retrieve same data. forward reading better explanation.
Comments
Post a Comment