Re: global not solving my problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





--- On Sun, 11/30/08, Fred Silsbee <fredsilsbee@xxxxxxxxx> wrote:

> From: Fred Silsbee <fredsilsbee@xxxxxxxxx>
> Subject: global not solving my problem
> To: php-db@xxxxxxxxxxxxx
> Cc: "Chris" <dmagick@xxxxxxxxx>, "Jack van Zanen" <jack@xxxxxxxxxxxx>
> 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?



      


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux