Fred Silsbee wrote: > 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 > ?> > > > > > > > Have you tried the $_SESSION variable? http://us.php.net/manual/en/reserved.variables.session.php Thank you, Micah Gersten onShore Networks Internal Developer http://www.onshore.com -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php