
mstoehr
New Members-
Posts
9 -
Joined
-
Last visited
mstoehr's Achievements

Member (2/5)
0
Reputation
-
$row_admin['total_staff'] = 5; //set in loop above $current_pick_staff = 1; //changes on page load AAAAWWWW: $sql = "SELECT * FROM vac_pick_order WHERE pick_order ='$current_pick_staff'"; $result = mysqli_query($conn, $sql); while($row = mysqli_fetch_assoc($result)){ if($row77['vac_c_counter'] > 0){ //<---- this is where the GOTO is needed if this goto the next staff member $current_pick_emp_num = $row77['emp_num']; }ELSE{ if ($current_pick_staff == $row_admin['total_staff']){ $current_pick_staff = 1; }ELSE{ $current_pick_staff++; } $sqla = "UPDATE vac_admin SET current_pick_staff='$current_pick_staff'"; if (mysqli_query($conn, $sqla)) { //echo "Record updated successfully a"; } else { echo "Error updating record: a " . mysqli_error($conn); } GOTO AAAAWWWW; } I think the GOTO is causing problems with my web host.It works fine on a local xampp server but not after uploading to Godaddy. It seems to freeze the server. How can i loop back to the beginning changing "$current_pick_staff" up by one without GOTO. $current_pick_staff loops around 1->5 then back to 1 (1 2 3 4 5 1 2 3 4 5 and so on)
-
Thank you for your input. Got it working now!!
-
That's a great bit of code Thanks. But i still have a problem. As the loop continues staff run out of vacation weeks therefore they need to be skipped and the next person can pick in the round. How do i skip a staff member that has run out of days to pick? The vac_pick_order -> vac_c_counter starts at the amount of vacation the staff is given and every week they pick is deducted from that count. When its 0 they should be skipped and the next person can pick. $qq = ($row_admin['current_pick_staff'] + $row_admin['current_round_number'] - 2) % ($row_admin['total_staff']) + 1; $sql = "SELECT * FROM vac_pick_order WHERE pick_year='$year' vac_c_counter>0 && pick_order='$qq'"; $result = mysqli_query($conn, $sql); while($row = mysqli_fetch_assoc($result)){ if($row['vac_c_counter'] > 0){ $current_pick_emp_num = $row['emp_num']; }ELSE{ GOTO NEXT STAFF?????? } }
-
This is my DB structure ~~~~~Table ~~~~vac_admin Id | pick_year | current_pick_staff ------------------------------------------------------------- 1 | 2020 | 1 ~~~~~Table ~~~~vac_pick_order Id | pick_year | pick_order | vac_c_counter | emp_number ------------------------------------------------------------------------------------------------------------- 1 | 2020 | 1 | 3 | 11111111 2 | 2020 | 2 | 5 | 22222222 3 | 2020 | 3 | 3 | 33333333 ~~~~~Table ~~~~vac_picks~~~the final result of picks Id | pick_year | date | emp_number ----------------------------------------------------------------------------- 1 | 2020 | 2020-05-15 | 11111111 2 | 2020 | 2020-02-20 | 22222222 3 | 2020 | 2020-12-25 | 33333333
-
Man i just can't wrap my head around this bit of code 😫😫 I have been trying all day still not the result i need.
-
SORRY I made a BIG ERROR explaining what i need . In every round the order changes by 1 every time ~~~~~~First round of picking~~~~~~ STAFF 1 - PICK ORDER 1 - 3 weeks available STAFF 2 - PICK ORDER 2 - 5 weeks available STAFF 3 - PICK ORDER 3 - 3 weeks available Staff 1 takes 2 Weeks Staff 2 takes 1 Weeks Staff 3 takes 3 Weeks ~~~~~~Second round of picking~~~~~~ STAFF 2 - PICK ORDER 1 - 4 weeks available STAFF 3 - PICK ORDER 2 - No weeks left STAFF 1 - PICK ORDER 3 - 1 weeks available Staff 2 takes 3 Weeks Staff 3 Skipped Staff 1 takes 1 Weeks ~~~~~~Third round of picking~~~~~~ STAFF 3 - PICK ORDER 1 - No weeks left STAFF 1 - PICK ORDER 2 - No weeks left STAFF 2 - PICK ORDER 3 - 1 weeks available Staff 3 Skipped Staff 1 Skipped Staff 1 takes 1 Weeks ~~~~~~~~~~~~ All staff 0 weeks left end thanks in advance for any help
-
I have 3 staff members that need to pick vacation in a certain order. Each have X weeks vacation and can pick off a calendar their choice 1-3 weeks per round. I'm trying to loop through the DB to find who is next to pick with weeks left ~~~~~~First round of picking~~~~~~ STAFF 1 - PICK ORDER 1 - 3 weeks available STAFF 2 - PICK ORDER 2 - 5 weeks available STAFF 3 - PICK ORDER 3 - 3 weeks available Staff 1 takes 2 Weeks Staff 2 takes 1 Weeks Staff 3 takes 3 Weeks ~~~~~~Second round of picking~~~~~~ STAFF 1 - PICK ORDER 1 - 1 weeks available STAFF 2 - PICK ORDER 2 - 4 weeks available STAFF 3 - PICK ORDER 3 - No weeks left Staff 1 takes 1 Weeks Staff 2 takes 3 Weeks Staff 3 Skipped ~~~~~~Third round of picking~~~~~~ STAFF 1 - PICK ORDER 1 - No weeks left STAFF 2 - PICK ORDER 2 - 1 weeks available STAFF 3 - PICK ORDER 3 - No weeks left Staff 1 Skipped Staff 2 takes 1 Weeks Staff 3 Skipped ~~~~~~~~~~~~ All staff 0 weeks left end --calendar.php-- $year=2020; $sql = "SELECT * FROM vac_admin WHERE pick_year='$year'; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { $row_admin = mysqli_fetch_assoc($result); } $current_pick_staff = $row_admin['current_pick_staff']; $sql = "SELECT * FROM vac_pick_order WHERE pick_year='$year' && pick_order = '$current_pick_staff'"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($result); if($row['vac_c_counter'] < 0){ $emp_num = $row['emp_num']; }ELSE{ ?????????????????? goto next staff with weeks > 0 ?????Somthing like if ($current_pick_staff == 3){ $current_pick_staff = 1; }ELSE{ $current_pick_staff++; } ?????????????????? } ~<FORM>~~~~~~~~~~~~~~~~~~~~~ Staff with $emp_num can now pick ~~~~~~ $_POST -> $date = XXXX-XX-XX; $num_weeks = X; $emp_num; ~</FORM>~~~~~~~~~~~~~~~~~~~~~ --process.php-- $year = 2020; $date = $_POST['date']; $num_weeks = $_POST['num_weeks']; $emp_num = $_POST['emp_num']; $sql = "INSERT INTO vac_picks (pick_year,emp_num,date) VALUES ($year,$emp_num,$date)"; $sql = "UPDATE vac_pick_order SET vac_c_counter=vac_c_counter - $num_weeks WHERE emp_num='$emp_num'; $sql = "UPDATE vac_admin SET pick_order=pick_order +1 WHERE pick_year='$year' ; Then back to calendar.php until all weeks gone.
-
WOW so simple Thank you works great
-
I'm trying to get dates out of the DB for an overtime system. The dates are for staff with the oldest seniority first to the newest staff last. But when 2 or more people start on the same date. I need to randomly order them every time i make a query to the DB In my database, there is a column called start_date. I need to select all the dates in order of oldest date to newest date. $sql = "SELECT * FROM staff ORDER BY start_date DESC"; That's easy BUT... If there are 2 or more of the same start dates selected those dates in random order OUTPUT Example: 1988-01-01 <-- oldest date 1988-02-02 1990-01-01 1990-05-05 2000-01-01 <-- these 3 in random order 2000-01-01 <-- these 3 in random order 2000-01-01 <-- these 3 in random order 2000-02-05 2005-12-12 2006-02-02 <-- these 5 in random order 2006-02-02 <-- these 5 in random order 2006-02-02 <-- these 5 in random order 2006-02-02 <-- these 5 in random order 2006-02-02 <-- these 5 in random order 2010-05-09 2019-01-14 <-- newest date etc