[Not Sent from Trinity College] Re: [Sahana_proj] POST variable array
Ralph Morelli
ram at cs.trincoll.edu
Wed Mar 14 21:53:13 EDT 2007
Hi Turner,
I looked at your code but can't see anything wrong either. It
certainly looks like the $_POST does not contain the selected
hospitals, as you expect it to. The only thing I can suggest is
putting the following debugging code into your program:
// include_once $global['approot']."/mod/vr/
utility_functions.inc"; // Local Library: Contains dbgpost()
// dbgpost($_POST);
The dbgpost($_POST) will display all the attributes and values in the
$_POST. Perhaps it will help you narrow down where the error is
occurring. To use it you need to include the utility_functions.inc
file, which is contained in the vr module, which you should have.
Sorry to hear your vacation has been boring---but cheer up, there's
more than a week to go. I'm heading to Ft. Myers on Saturday!
-- ram
On Mar 14, 2007, at 3:35 PM, Turner Hayes wrote:
> Hello all,
>
> I've been having a little trouble with one of our
> functionalities. In editing information about a hospital staff
> member (or adding a staff member), a user is asked to select from a
> multi-select box which hospital(s) the particular staff member is
> employed at. This is passed in the $_POST variable to a validation
> function before any information is actually added to the database.
> If there is something wrong with the input, the user is informed of
> the problems and given a button to go back and try again. I want
> the information that the user submitted to be preserved, so that
> when he goes back to fix the errors, he doesn't have to input all
> the information again. Unfortunately, the array of hospitals
> doesn't seem to be appearing once the user is redirected from the
> validation page. I'm probably missing something, so I thought hey,
> the more eyes, the better.
>
> If you so desire, you can see the problem for yourself on our
> server: http://sahana.cs.wesleyan.edu/index.php?
> mod=hr&act=view_all_staff <http://sahana.cs.wesleyan.edu/index.php?
> mod=hr&act=view_all_staff>
> Click the pencil icon (courtesy of PHPmyadmin) to edit a staff
> member, then make sure to make a fatal error, such as inputing no
> staff name or unchecking all specialty boxes. Click "Edit staff",
> then click the button to go back when the error page comes up. You
> will see that none of the previously selected hospitals are
> selected (in fact none are selected). You will also see some
> debugging printouts that inform you that no array of hospitals was
> passed in $_POST. I'm attaching the relevant code for your perusal:
> the relevant functions are shn_hr_edit_staff() and
> shn_hr_validate_edit_staff() (lines 386-555).
>
> I sincerely apologize for the long, rambling email, but it's been
> frustrating me. As you may guess, I've had an extraordinarily
> boring vacation.
>
> Thank you,
> Turner
> <?php
>
> /**
> * This file includes all the methods for staff management in
> Hospital Registry
> *
> * LICENSE: This source file is subject to LGPL license
> * that is available through the world-wide-web at the following URI:
> * {@link http://www.gnu.org/copyleft/lesser.html}
> *
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @author Bach Vu Dao <bdao at wesleyan.edu>
> * @version 1.0
> * @package Sahana
> *
> */
>
>
> /**
> * Global variable containing much-used variables throughout Sahana.
> */
> global $global;
>
> /**
> * Library functions for validating forms
> */
> require_once $global['approot']."/inc/lib_validate.inc";
> /**
> * Database handilng functions
> */
> require_once $global['approot']."/inc/handler_db.inc";
> /**
> * Library functions for the hospital registry
> */
> include_once "lib_hr.inc";
>
> /**
> * This function will display the add staff form in the hospital
> registry
> *
> * @author Bach Dao
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @access public
> * @todo fix the hospital selection box so that it will select the
> correct hospitals if there is a POST variable
> * set for the hospital selection (right now PHP doesn't seem to be
> passing it as an array)
> */
> function shn_hr_add_staff(){
> echo "<br /><br />\$_POST:<br />";
> foreach($_POST as $key => $value) {
> if($value == "Array") {
> echo "(";
> foreach($_POST[$key] as $k => $v) {
> echo "$k => $v,";
> }
> echo ")";
> }
> else {
> echo "$key => $value<br />";
> }
> }
> echo "<br /><br />";
>
> echo "<h1>Add a new staff member</h1>";
> echo "<div id='formcontainer'>";
>
> shn_form_fopen("validate_add_staff");
>
> //general information
> shn_form_fsopen("General Information");
> echo "<div class='info'>";
> echo "This is general information about a staff member";
> echo "</div>";
> $extra_opts['req'] = true;
> shn_form_text(_("Name: "), 'name', 'size="50"', $extra_opts); //
> Get name
> shn_form_text(_("Email: "), 'email', 'size="50"');
>
> shn_form_fsclose();
>
> //specialty information
> shn_form_fsopen("Specialties Information");
> echo "<div class='info'>";
> echo "This is information about the staff specialties";
> echo "</div>";
>
> $spec_names = get_field_data_from_db('shm_spec', 'name');
> foreach ($spec_names as $spec){
> $checked = null;
> if(isset($_POST[$spec])) {
> $checked = "checked";
> }
> shn_form_checkbox($spec, $spec, $checked);
> }
> shn_form_fsclose();
>
> //hospital assignment information
> shn_form_fsopen("Hospital Assignment Information");
> echo "<div class='info'>";
> echo "This is information about the staff hospital assignment";
> echo "</div>";
> $hosp_names = array();
> $hosp_names = get_field_data_from_db('shm_hospital', 'name');
>
> $selected_hosps = array();
> $selected_hosps = $_POST["hospital_names"];
>
> if($selected_hosps) {
> echo "<br /><br />\$selected_hosps:<br />";
> foreach($selected_hosps as $key => $value) {
> echo "$key => $value<br />";
> }
> }
> $extra_opts['value'] = $selected_hosps;
> shn_form_multi_select("hospital_names", $hosp_names, _("Hospitals:
> "), 'multiple="multiple" size=5', $extra_opts);
>
> shn_form_fsclose();
> shn_form_submit("Add staff");
> shn_form_fclose();
> print ("</div>");
>
> }
>
> /**
> * This function will validate if the the input to the add hospital
> page is correct
> *
> * @author Bach Dao
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @access public
> */
> function shn_hr_validate_add_staff(){
> // echo "<br /><br />\$_POST:<br />";
> // foreach($_POST as $key => $value) {
> // if($value == "Array") {
> // echo "(";
> // foreach($_POST[$key] as $k => $v) {
> // echo "$k => $v,";
> // }
> // echo ")";
> // }
> // else {
> // echo "$key => $value<br />";
> // }
> // }
> // echo "<br /><br />";
>
>
> $name = $_POST["name"];
> $email = $_POST["email"];
>
> $specs = array();
> $spec_names = get_field_data_from_db('shm_spec', 'name');
> foreach ($spec_names as $spec){
> if(isset($_POST[$spec])){
> $specs[] = $spec;
> }
> }
>
> if(!$specs) {
> $errors = true;
> add_error("You must select at least one specialty.");
> }
>
> $hospital_names = array();
> $hospital_names = $_POST["hospital_names"];
>
> echo "<br /><br />\$hospital_names:<br />";
> foreach($hospital_names as $key => $value) {
> echo "$key => $value<br />";
> }
>
> if(!$hospital_names) {
> $errors = true;
> add_error("You must select at least one hospital of employment");
> }
>
> if(!shn_validate_field($name, 'Staff Name', 75, true)) {
> $errors = true;
> }
>
> if(!shn_valid_email($email)){
> $errors = true;
> add_error("You did not enter a valid email address.");
> }
>
> if($errors) {
> display_errors();
> echo "<br /><br />";
> echo "<form method='POST' action='index.php?mod=hr&act=add_staff'>";
> shn_form_hidden($_POST);
> echo "<input type='submit' value='Click to go back and resubmit'>";
> echo "</form>";
> }
> else {
> shn_form_hidden($_POST);
> shn_hr_add_staff_process();
> }
>
> }
>
> /**
> * This function will process the data sent from the
> validate_add_staff function
> *
> * This will perform all the sql queries
> * @author Bach Dao
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @access public
> */
> function shn_hr_add_staff_process(){
> global $global;
>
>
> $name = $_POST["name"];
>
> $email = $_POST["email"];
>
> $specs = array();
> $spec_names = get_field_data_from_db('shm_spec', 'name');
> foreach ($spec_names as $spec){
> if(isset($_POST[$spec])){
> $specs[] = $spec;
> }
> }
> $hospital_names = $_POST["hospital_names"];
>
> $h_ids = array();
> //get the id of the hospital
> foreach($hospital_names as $h_name) {
> $h_id = get_field_from_id("shm_hospital", "name", $h_name,
> "hospital_id");
> $h_ids[] = $h_id;
> }
>
> //add the staff into the database
> $sql = "INSERT INTO shm_staff SET name='$name', email='$email'";
> $result = $global["db"]->Execute($sql);
>
> if($result) {
> //get the id of the new staff
> $staff_id = get_field_from_id("shm_staff", "name", $name,
> "staff_id");
>
> //for each spec add a new entry in the shm_specialdis
> foreach($specs as $specialty){
> $spec_id = get_field_from_id("shm_spec", "name", $specialty,
> "spec_id");
> $sql = "INSERT INTO shm_specialdis SET staff_id='$staff_id',
> spec_id='$spec_id'";
> $result = $global["db"]->Execute($sql);
> if(!$result) {
> echo "<b class='red'>Unable to assign to specialty $specialty.</
> b>\n<br />\n";
> }
> }
>
> //for each hospital add a new entry in the shm_staffdis
> foreach($h_ids as $h_id){
> $hospital = get_field_from_id("shm_hospital", "hospital_id",
> $h_id, "name");
> $sql = "INSERT INTO shm_staffdis SET staff_id='$staff_id',
> hospital_id='$h_id'";
> $result = $global["db"]->Execute($sql);
> if(!$result) {
> echo "<b class='red'>Unable to assign to hospital $hospital.</b>
> \n<br />\n";
> }
> }
> echo "<b class='red'>Added staff member $name.</b>";
> }
> else {
> echo "<b class='red'>Unable to add staff member $name.</b>";
> }
> shn_hr_view_all_staff();
> }
>
>
> /**
> * Displays information about each staff member in the database
> *
> * This function displays a list of all staff members in the
> database, with information such as name, email,
> * specialty (or specialties), and place(s) of employment.
> *
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @access public
> * @todo add paging capabilities, similar to {@link
> shn_hr_view_all_problems}
> */
>
> function shn_hr_view_all_staff() {
> global $global;
>
> echo "<h2><center>All hospital staff</center></h2>\n<br />\n<br />
> \n";
>
> $staff_ids = get_field_data_from_db("shm_staffdis", "staff_id");
>
> foreach($staff_ids as $staff_id) {
> $staff_name = get_field_from_id("shm_staff", "staff_id",
> $staff_id, "name");
> $staff_email = get_field_from_id("shm_staff", "staff_id",
> $staff_id, "email");
> $hosp_ids = get_field_data_from_db("shm_staffdis", "hospital_id",
> null, "staff_id", $staff_id);
> $spec_ids = get_field_data_from_db("shm_specialdis", "spec_id",
> null, "staff_id", $staff_id);
>
> echo "<h3>$staff_name<div align='right'><a href='index.php?
> mod=hr&act=edit_staff&id=$staff_id'><img src='../theme/default/img/
> edit.png' border=0 /></a> <a href='index.php?
> mod=hr&act=confirm_delete_staff&id=$staff_id'><img src='../theme/
> default/img/del.png' border=0 /></a></div></h3>\n<br />\n";
> echo "<b>Email: </b><a href='mailto:$staff_email'>$staff_email</a>
> \n<br />\n<br />\n";
> echo "<b>Specialties:</b>\n<br />\n<br />\n";
> foreach($spec_ids as $spec_id) {
> $spec_name = get_field_from_id("shm_spec", "spec_id", $spec_id,
> "name");
> echo " $spec_name\n<br />\n";
> }
> echo "<br />\n<br />\n";
> echo "<b>Hospitals that employ $staff_name:</b>\n<br />\n<br />\n";
> foreach($hosp_ids as $h_id) {
> $hospital = get_field_from_id("shm_hospital", "hospital_id",
> $h_id, "name");
> echo " <a href='index.php?
> mod=hr&act=view_specific_hosp&id=$h_id'>$hospital</a>\n<br />\n";
> }
>
> echo "\n<br />\n<br />\n<br />\n";
> }
> }
>
>
>
> /**
> * Creates the confirmation message for deleting a staff member
> *
> * This function asks the user if they really do want to delete the
> selected staff member, and provides
> * them with a submit button to confirm their decision.
> *
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @access public
> */
>
> function shn_hr_confirm_delete_staff(){
> echo "<h1>Delete a staff member</h1>";
> $staff_id = $_GET["id"];
> $name = get_field_from_id("shm_staff", "staff_id", $staff_id,
> "name");
> if($name) {
> $extra_opts['req_message']=false;
> shn_form_fopen("delete_staff", null, $extra_opts);
> echo "You are about to delete staff member <b>$name</b>. Are you
> sure?<br /><br />";
> echo "By clicking Delete, all information about the staff member
> will be erased. This action is irreversible.<br /><br />";
>
> shn_form_hidden(array("id" => $staff_id));
> shn_form_submit("Delete staff member");
> shn_form_fclose();
> }
> else {
> echo "<b>There is no staff memeber with this id.</b>";
> }
> }
>
>
> /**
> * Executes the query on the database and deletes distribution
> information for the staff member
> *
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @access public
> */
>
> function shn_hr_delete_staff(){
> global $global;
> $staff_id = $_POST["id"];
> $name = get_field_from_id("shm_staff", "staff_id", $staff_id,
> "name");
>
> $sql = "DELETE FROM shm_staff WHERE staff_id='$staff_id'";
> $result = $global['db']->Execute($sql);
>
> if($result){
> $sql = "DELETE FROM shm_staffdis WHERE staff_id='$staff_id'";
> $staffdis_del_result = $global['db']->Execute($sql);
> //we only want to delete all information about the staff member
> if the staff member information itself has been
> //successfully deleted
> if(!$staffdis_del_result) {
> echo "<b> class='red'>This staff member's hospital distribution
> information could not be deleted.</b><br /><br />";
> }
> $sql = "DELETE FROM shm_specialdis WHERE staff_id='$staff_id'";
> $specdis_del_result = $global['db']->Execute($sql);
> if(!$specdis_del_result) {
> echo "<b class='red'>This staff member's specialty distribution
> information could not be deleted.</b><br /><br />";
> }
> echo "<b class='red'>The staff member $name has been successfully
> deleted.</b>";
> shn_hr_view_all_staff();
> }
> else {
> echo "<b class='red'>The staff member $name could not be
> deleted.</b>";
> shn_hr_view_all_staff();
> }
> }
>
>
> /**
> * This function will display the edit staff form in the hospital
> registry (staff id obtained from GET variable)
> *
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @access public
> * @todo fix the hospital selection box so that it will select the
> correct hospitals if there is a POST variable
> * set for the hospital selection (right now PHP doesn't seem to be
> passing it as an array)
> */
>
> function shn_hr_edit_staff() {
> global $global;
>
> $staff_id = $_GET['id'];
>
> $staff_name = get_field_from_id("shm_staff", "staff_id",
> $staff_id, "name");
> $staff_email = get_field_from_id("shm_staff", "staff_id",
> $staff_id, "email");
> $staff_hosp_ids = array();
> $staff_hosp_ids = get_field_data_from_db("shm_staffdis",
> "hospital_id", null, "staff_id", $staff_id);
> foreach($staff_hosp_ids as $s_h_id) {
> $h_name = get_field_from_id("shm_hospital", "hospital_id",
> $s_h_id, "name");
> $staff_hosps[$h_name] = $h_name;
> }
> $staff_spec_ids = array();
> $staff_spec_ids = get_field_data_from_db("shm_specialdis",
> "spec_id", null, "staff_id", $staff_id);
>
> $staff_specs = array();
> foreach($staff_spec_ids as $s_id) {
> $s_name = get_field_from_id("shm_spec", "spec_id", $s_id, "name");
> $staff_specs[$s_name] = $s_name;
> }
>
> echo "<h1>Edit information for staff member $staff_name</h1>";
> echo "<div id='formcontainer'>";
>
> shn_form_fopen("validate_edit_staff");
>
> //general information
> shn_form_fsopen("General Information");
> echo "<div class='info'>";
> echo "This is general information about a staff member";
> echo "</div>";
> $extra_opts['req'] = true;
> $extra_opts['value'] = $staff_name;
> shn_form_text(_("Name: "), 'name', 'size="50"', $extra_opts); //
> Get name
> $extra_opts['req'] = false;
> $extra_opts['value'] = $staff_email;
> shn_form_text(_("Email: "), 'email', 'size="50"', $extra_opts);
>
> shn_form_fsclose();
>
> //specialty information
> shn_form_fsopen("Specialties Information");
> echo "<div class='info'>";
> echo "This is information about the staff specialties";
> echo "</div>";
>
> $spec_names = array();
> $spec_names = get_field_data_from_db('shm_spec', 'name');
> foreach ($spec_names as $spec){
> $checked = null;
>
> if(isset($staff_specs[$spec])) {
> $checked = "checked";
> }
> shn_form_checkbox($spec, $spec, $checked);
> }
> shn_form_fsclose();
>
> //hospital assignment information
> shn_form_fsopen("Hospital Assignment Information");
> echo "<div class='info'>";
> echo "This is information about the staff hospital assignment";
> echo "</div>";
> $hosp_names = array();
> $hosp_names = get_field_data_from_db('shm_hospital', 'name');
>
> $selected_hosps = array();
> $selected_hosps = ($_POST["hospital_names"]) ? $_POST
> ["hospital_names"] : $staff_hosps;
>
> echo "<br />\$_POST['hospital_names'] = ".$_POST
> ['hospital_names']."<br />";
> echo "<br /><br />\$staff_hosps:<br />";
> foreach($staff_hosps as $key => $value) {
> echo "$key => $value<br />";
> }
>
> if($selected_hosps) {
> echo "<br /><br />\$selected_hosps:<br />";
> foreach($selected_hosps as $key => $value) {
> echo "$key => $value<br />";
> }
> }
> $extra_opts['value'] = $selected_hosps;
> shn_form_multi_select("hospital_names", $hosp_names, _("Hospitals:
> "), 'multiple="multiple" size=5', $extra_opts);
>
> shn_form_fsclose();
> shn_form_hidden(array("staff_id" => $staff_id));
> shn_form_submit("Edit staff");
> shn_form_fclose();
> print ("</div>");
> }
>
>
> /**
> * This function will validate if the the input to the edit
> hospital page is correct
> *
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @access public
> */
>
> function shn_hr_validate_edit_staff(){
> // echo "<br /><br />\$_POST:<br />";
> // foreach($_POST as $key => $value) {
> // if($value == "Array") {
> // echo "(";
> // foreach($_POST[$key] as $k => $v) {
> // echo "$k => $v,";
> // }
> // echo ")";
> // }
> // else {
> // echo "$key => $value<br />";
> // }
> // }
> // echo "<br /><br />";
>
>
> $name = $_POST["name"];
> $email = $_POST["email"];
> $staff_id = $_POST['staff_id'];
>
> $spec_names = get_field_data_from_db('shm_spec', 'name');
> foreach ($spec_names as $spec){
> if(isset($_POST[$spec])){
> $specs = true;
> break;
> }
> }
>
> if(!$specs) {
> $errors = true;
> add_error("You must select at least one specialty.");
> }
>
> $hospital_names = array();
> $hospital_names = $_POST["hospital_names"];
>
> // echo "<br /><br />\$hospital_names:<br />";
> // foreach($hospital_names as $key => $value) {
> // echo "$key => $value<br />";
> // }
>
> if(!$hospital_names) {
> $errors = true;
> add_error("You must select at least one hospital of employment");
> }
>
> if(!shn_validate_field($name, 'Staff Name', 75, true)) {
> $errors = true;
> }
>
> if(!shn_valid_email($email)){
> $errors = true;
> add_error("You did not enter a valid email address.");
> }
>
> if($errors) {
> display_errors();
> echo "<br /><br />";
> echo "<form method='POST' action='index.php?
> mod=hr&act=edit_staff&id=$staff_id'>";
> shn_form_hidden($_POST);
> echo "<input type='submit' value='Click to go back and resubmit'>";
> echo "</form>";
> }
> else {
> shn_form_hidden($_POST);
> shn_hr_edit_staff_process();
> }
>
> }
>
>
> /**
> * This function will process the data sent from the
> validate_edit_staff function
> *
> * This will perform all the sql queries
> * @author Turner Hayes <thayes at wesleyan.edu>
> * @access public
> * @todo improve the specialty and hospital distribution update, as
> described in the code
> */
> function shn_hr_edit_staff_process(){
> global $global;
>
>
> $name = $_POST["name"];
>
> $email = $_POST["email"];
> $staff_id = $_POST['staff_id'];
>
> $specs = array();
> $spec_names = get_field_data_from_db('shm_spec', 'name');
> foreach ($spec_names as $spec){
> if(isset($_POST[$spec])){
> $specs[] = $spec;
> }
> }
> $hospital_names = $_POST["hospital_names"];
>
> $h_ids = array();
> //get the ids of the hospitals
> foreach($hospital_names as $h_name) {
> $h_id = get_field_from_id("shm_hospital", "name", $h_name,
> "hospital_id");
> $h_ids[] = $h_id;
> }
>
> //add the staff into the database
> $sql = "UPDATE shm_staff SET name='$name', email='$email' WHERE
> staff_id='$staff_id'";
> echo "<br />\$sql:<br />$sql<br /><br />";
>
> $result = $global["db"]->Execute($sql);
>
> if($result) {
>
> /**This commented out section was an attempt at making the
> editing more efficient; since we don't know
> * how many specialties the edited staff member will have, we
> need to remove all existing specialty
> * distribution information before adding the new info (because
> there may be more or fewer specialties
> * after editing, meaning we can't simply update the entries in
> shm_specialdis). It would be much better
> * if we could update as many rows as possible, and delete any
> remaining rows if they end up unneeded,
> * or insert new rows if there weren't enough existing entries in
> shm_specialdis. That's what this was meant
> * to be, but it sadly didn't work. It simply deleted all entries
> from shm_specialdis for the staff member.
> */
>
> /*$current_dis_ids = get_field_data_from_db("shm_specialdis",
> "dis_id", null, "staff_id", $staff_id);
> $num_current_specs = count($current_dis_ids);
>
> $i = 0; //index to keep track of how many spec distributions
> have been updated
>
> foreach($current_dis_ids as $dis_id) {
> $spec_id = get_field_from_id("shm_specialdis", "dis_id",
> $dis_id, "specs[$i]");
> //if there are still distribution rows available to be updated
> and all distribution fields can be updated
> //(that is, there are fewer or equal existing dis_ids than/to
> the number new specialties)
> if(($i<$num_current_specs) && ($i < count($specs))) {
> $sql = "UPDATE shm_specialdis SET spec_id='$spec_id' WHERE
> dis_id='$dis_id'";
> $result = $global['db']->Execute($sql);
> if(!$result) {
> echo "<b class='red'>Unable to update specialty $specs[$i].</b>";
> }
> $i++;
> }
> //all existing dis_ids have been updated, need to add new rows
> until number of selected specialties
> else if($i < count($specs)) {
> $sql = "INSERT INTO shm_specialdis SET staff_id='$staff_id',
> spec_id='$spec_id";
> $result = $global['db']->Execute($sql);
> if(!$result) {
> echo "<b class='red'>Unable to add specialty $specs[$i].</b>";
> }
> }
> //eliminate remaining specialties for this staff member (if the
> new set of specialties is less than
> //the previous one)
> else if($i<$num_current_specs) {
> $sql = "DELETE FROM shm_specialdis WHERE dis_id=$dis_id";
> $result = $global['db']->Execute($sql);
> if(!$result) {
> echo "<b class='red'>Unable to remove specialty $specs[$i].</b>";
> }
> }
> } */
>
>
> //first delete all existing specialty distribution information
> for this staff member
> $sql = "DELETE FROM shm_specialdis WHERE staff_id='$staff_id'";
> $result = $global['db']->Execute($sql);
>
> //then, for each spec add a new entry in the shm_specialdis table
> foreach($specs as $specialty){
> $spec_id = get_field_from_id("shm_spec", "name", $specialty,
> "spec_id");
> $sql = "INSERT INTO shm_specialdis SET staff_id='$staff_id',
> spec_id='$spec_id'";
> $result = $global["db"]->Execute($sql);
> if(!$result) {
> echo "<b class='red'>Unable to assign to specialty $specialty.</
> b>\n<br />\n";
> }
> }
>
> //first delete all existing hospital distribution information for
> this staff member
> $sql = "DELETE FROM shm_staffdis WHERE staff_id='$staff_id'";
> $result = $global['db']->Execute($sql);
>
> //then, for each hospital add a new entry in the shm_staffdis table
> foreach($h_ids as $h_id){
> $hospital = get_field_from_id("shm_hospital", "hospital_id",
> $h_id, "name");
> $sql = "INSERT INTO shm_staffdis SET staff_id='$staff_id',
> hospital_id='$h_id'";
> $result = $global["db"]->Execute($sql);
> if(!$result) {
> echo "<b class='red'>Unable to assign to hospital $hospital.</b>
> \n<br />\n";
> }
> }
> echo "<b class='red'>Edited staff member $name.</b>";
> }
> else {
> echo "<b class='red'>Unable to edit staff member $name.</b>";
> }
> shn_hr_view_all_staff();
> }
> ?>_______________________________________________
> Sahana_proj mailing list
> Sahana_proj at lists.trincoll.edu
> http://lists.trincoll.edu/cgi-bin/mailman/listinfo/sahana_proj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.trincoll.edu/pipermail/sahana_proj/attachments/20070314/b2116dbf/attachment-0001.html
More information about the Sahana_proj
mailing list