Re: global not solving my problem

[email protected] (Fred Silsbee)
Newsgroups php.db
Message-ID <[email protected]>


--- On Sun, 11/30/08, Fred Silsbee <[email protected]> wrote:

> From: Fred Silsbee <[email protected]>
> Subject: global not solving my problem
> To: [email protected]
> Cc: "Chris" <[email protected]>, "Jack van Zanen" <[email protected]>
> Date: Sunday, November 30, 2008, 6:35 PM
> 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"/>&nbsp;
>             <input type="submit"
> name="update" value="update checked
> items"/>&nbsp;
>             <input type="submit"
> name="new" value="New Log Entry"
> />&nbsp;         
>             <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
> ?>


problem solved...used a session:

           session_start();
           $_SESSION['rowInsert'] = $rowInsert;

.. . . . 

       session_start();
       $rowInsert = $_SESSION['rowInsert'] ;

any harm in this?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.