problem: I have resolved all problems in the PHP program below except one. Yes I know the program is in a mess but I will clean it up. This is a learning exercise! Basically there is one function per page. When I make a selection on a page, a function is executed. I need to pass the value of $rowInsert from one page to another. $rowInsert is altered when I enter the program (at the top). To verify the program works (outside this problem), I set the value = 525. Global does not persist the value between pages(functions). I can't use _POST because the value of $rowInsert is not associated with an entry slot(edit control). I could make an entry slot(edit control) just for this purpose but that is not good! <?php /* drop sequence log_id; create sequence log_id increment by 1 start with 1; drop table log_book_id; create table log_book_id ( log_id number primary key, fdate date, actype varchar2(16), acid varchar(16), nlandings number, nhoursnumber); insert into log_book_id values (logid.nextval, TO_DATE('08/12/1973','MM/dd/YYYY'),'C150','N5787G',1,1.8); insert into log_book_id values (logid.nextval, TO_DATE('08/17/1973','MM/dd/YYYY'),'C150','N5787G',3,1.5); insert into log_book_id values (logid.nextval, TO_DATE('08/26/1973','MM/dd/YYYY'),'C150','N5787G',10,1.8); insert into log_book_id values (logid.nextval, TO_DATE('09/01/1973','MM/dd/YYYY'),'C150','N5293S',9,1.7); */ print("........................................ENTER................"); $rowInsert = 525; // temporary $db = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = LMKIIIGDNSID) ) )"; if ($conn=oci_connect('landon', 'rumprocella',$db)) { echo "Successfully connected to Oracle.\n"; } else { $err = OCIError(); echo "Oracle Connect Error " . $err['message']; } //construct a global variable for the form profile $fields = array("fdate", "actype", "acid", "nlandings", "nhours"); /// // If the submit button has been pressed if (isset($_POST['select'])){ displayDeleteForm(); }elseif(isset($_POST['delete'])){ deleteRecords(); } elseif(isset($_POST['insert'])){ insertRecord(); } elseif (isset($_POST['new'])){ displayEntryForm(); } elseif (isset($_POST['update'])){ showRecord(); } else { //default action displayEntryForm(); } //...........................................................................function displayDeleteForm() function displayDeleteForm(){ //get $fields into the function namespace global $fields; global $conn; /* Create and execute query. */ // Loop through each row, outputting the actype and name echo <<<HTML Pilots Logbook entries stored in Oracle Relational Database under Redhat Fedora 8 Linux <form action="{$_SERVER['PHP_SELF']}" method="post"> <table width="50%" align="center" border="1"> <tr> <th>checked</th> <th>rowID</th> <th>fdate</th> <th>actype</th> <th>acid</th> <th>nlandings</th> <th>nhours</th> </tr> HTML; //get log_book_id table information $user = "select * from log_book_id"; $result = oci_parse($conn, $user); $r = oci_execute($result); //display log_book_id information $count = 0; while ($newArray = oci_fetch_assoc($result)) { if ($count == 0) print_r($newArray); $count = 1; foreach ($fields as $field){ $fieldx = strtoupper($field); ${$field} = $newArray[$fieldx]; $count = $count +1; // print($field); // print_r($newArray[$field]); } $rowID = $newArray['LOG_ID']; //note that we do not rely on the checkbox value as not all browsers submit it //instead we rely on the name of the checkbox. echo <<<HTML <TR> <td> <input type="checkbox" name="checkbox[$rowID]" value="$rowID">Check to delete record </td> <TD>$rowID</TD> <TD>$fdate</TD> <TD>$actype</TD> <TD>$acid</TD> <TD>$nlandings</TD> <TD>$nhours</TD> </TR> HTML; } // while echo <<<HTML <tr> <td colspan="7"> <input type="submit" name="delete" value="delete checked items"/> <input type="submit" name="update" value="update checked items"/> <input type="submit" name="new" value="New Log Entry" /> <input type="reset" name="reset" value="Reset Form" /> </td> </tr> </table> </form> HTML; } //close function // ................................................................. function deleteRecords() // function deleteRecords() { $db = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = LMKIIIGDNSID) ) )"; // Loop through each log_book_id with an enabled checkbox if (!isset($_POST['checkbox'])){ return true; } //else foreach($_POST['checkbox'] as $key=>$val){ $toDelete[] = $key; } //expand the array for an IN query $where = implode(',', $toDelete); if ($conn=oci_connect('landon', 'rumprocella',$db)) { echo "Successfully connected to Oracle D.\n"; } else { $err = OCIError(); echo "Oracle Connect Error " . $err['message']; } $query = "DELETE FROM log_book_id WHERE log_id IN ($where)"; echo($query); $result = oci_parse($conn, $query); $r = oci_execute($result); // Commit transaction $committed = oci_commit($conn); // Test whether commit was successful. If error occurred, return error message if (!$committed) { $error = oci_error($conn); echo 'Commit failed. Oracle reports: ' . $error['message']; } // Should have one affected row if ((oci_num_rows($result)== 0) ) { echo "<p>There was a problem deleting some of the selected items.</p><p>".oci_error().'</p>'; // exit(); } else { echo "<p>The selected items were successfully deleted.</p>"; } //direct the user back to the delete form displayDeleteForm(); } //end function //...........................................................................function insertRecord() function insertRecord() { global $rowInsert; $db = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = LMKIIIGDNSID) ) )"; if ($conn=oci_connect('landon', 'rumprocella',$db)) { echo "Successfully connected to Oracle.\n"; } else { $err = OCIError(); echo "Oracle Connect Error " . $err['message']; } // Retrieve the posted log book information. global $fields; //add some very crude validation foreach ($fields as $field){ if (empty($_POST[$field])){ $messages[] = "You must complete the field $field \r\n"; } else { $dFields[$field] = mysql_real_escape_string(trim($_POST[$field])); } } if (count($messages)>0) { displayEntryForm($messages, $dFields); exit(); } //end validation //get variables into the namespace extract($dFields); // Insert the log book information into the log book table print("insertRecord".$rowInsert); if($rowInsert) { $query = "UPDATE log_book_id set fdate = '$fdate', actype='$actype', acid='$acid', nlandings='$nlandings', nhours='$nhours' where log_id='$rowInsert'"; } else { $query = "INSERT INTO log_book_id (log_id , fdate, actype, acid, nlandings, nhours) values (logid.nextval,'$fdate','$actype','$acid','$nlandings','$nhours')"; } $rowInsert = 0; // echo ($query); $result = oci_parse($conn, $query); $r = oci_execute($result); // Display an appropriate message if ($r) { echo "<p>Product successfully inserted!</p>"; }else { echo "<p>There was a problem inserting the log book!</p>"; $error = oci_error($conn); echo 'Insert failed. Oracle reports: ' . $error['message']; } //direct the user back to the entry form // Commit transaction $committed = oci_commit($conn); // Test whether commit was successful. If error occurred, return error message if (!$committed) { $error = oci_error($conn); echo 'Commit failed. Oracle reports: ' . $error['message']; } // Should have one affected row if ((oci_num_rows($result)== 0) ) { echo "<p>There was a problem inserting some of the selected items.</p><p>".oci_error().'</p>'; // exit(); } else { echo "<p>The selected items were successfully inserted.</p>"; } displayDeleteForm(); } //...........................................................................function showRecord() function showRecord() { global $fields; global $dFields; global $rowInsert; // Loop through each log_book_id with an enabled checkbox if (!isset($_POST['checkbox'])){ return true; } //else foreach($_POST['checkbox'] as $key=>$val){ $toDelete[] = $key; } $db = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = LMKIIIGDNSID) ) )"; if ($conn=oci_connect('landon', 'rumprocella',$db)) { echo "Successfully connected to Oracle.\n"; } else { $err = OCIError(); echo "Oracle Connect Error " . $err['message']; } // errors //get log_book_id table information $user = "select * from log_book_id where log_id = $toDelete[0]"; $result = oci_parse($conn, $user); $r = oci_execute($result); //display log_book_id information $count = 0; $newArray = oci_fetch_assoc($result); if ($count == 0) print_r($newArray); $count = 1; foreach ($fields as $field){ $fieldx = strtoupper($field); ${$field} = $newArray[$fieldx]; $dFields[$field] = ${$field}; } $rowID = $newArray['LOG_ID']; $rowInsert = $rowID; print_r($dFields); print ($rowInsert); //note that we do not rely on the checkbox value as not all browsers submit it //instead we rely on the name of the checkbox. // insert the row information in the entry form global $fields; //end validation displayEntryForm(); } //...........................................................................function displayEntryForm() function displayEntryForm($errorMessages=null, $dFields=null){ if (!empty($errorMessages)){ echo "<ul><li>".explode('</li><li>', $errorMessages) . "</li></ul>"; } global $dFields; //sort out field values global $fields; foreach ($fields as $field){ if (isset($dFields[$field])){ ${$field} = $dFields[$field]; } else { ${$field} = ''; } } echo <<<HTML <form action="{$_SERVER['PHP_SELF']}" method="post"> <p> Flight Date:<br /> <input type="text" size="20" maxlength="40" name="fdate" value="$fdate" /> </p> <p> Aircraft Type:<br /> <input type="text" size="20" maxlength="40" name="actype" value="$actype" /> </p> <p> Aircraft ID:<br /> <input type="text" size="20" maxlength="40" name="acid" value="$acid" /> </p> <p> Number Landings:<br /> <input type="text" size="20" maxlength="40" name="nlandings" value="$nlandings" /> </p> <p> Number Hours:<br /> <input type="text" size="20" maxlength="40" name="nhours" value="$nhours" /> </p> <button type="submit" name = "insert" value="Insert Row!" style="color:maroon font:18pt Courier; font-weight:bold ">Insert Row </button> <button type="submit" name = "select" value="Show All!" style="color:red font:18pt Courier; font-weight:bold ">Show All </button> <button type="submit" name = "delete" value="Delete Row!" style="color:red font:18pt Courier; font-weight:bold ">Delete Row! </button> <button type="submit" name = "update" value="Update Row!" style="color:red font:18pt Courier; font-weight:bold ">Update Row! </button> </form> HTML; } //end display function ?> -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php