Ok So I have this PHP class that talks to a Javascript class that basically creates a table of information from a database query and puts it in a sortable, filterable table. This all works fine and dandy.
Well, i have had the need for some semi-dynamic functionality (changing the table of the query, or changing some other detail) which I accomplished using GETS. This also worked perfectly
I wanted to try to add some AJAX functionality in place of the GET functionality, so I changed things around a bit, and now I am sending an xmlhttprequest to my php page. this requests fine. however, I do not get back the information I want. Here is the PHP page that I send the request to
print_r(getAssoc($query, $table)); echo "done with print_r"; //echo json_encode(getAssoc($query, $table));
page.php (just a small class that does some oracle database connection and query stuff. This class DOES work, as I use it everywhere)
class oracle { //class variables var $connection;
/*Constructor *Input (Server name, server usename, server password. By default *server name is localhost, and password and user are blank *returns true if connection was successful, false if not */ function oracle($svname, $svuser, $svpass){ //echo "<script type='text/javascript'>alert('".$svname."');</script>"; try { $conn = oci_connect($svuser, $svpass, $svname); if (!$conn){ throw new Exception("Error"); } } catch(Exception $e){ trigger_error($e->getMessage()); exit(); } $this->connection = $conn; if (!$conn){ echo "<script type='text/javascript'>alert('COULD NOT CONNECT');</script>"; return false; } return true; }//end Constructor
//class functions
/*query_valid *Input: A query String *Returns the string if it is valid. String cannot have insert or update commands *returns false if it does */ public function is_valid($string){ $temp = strtoupper($string); $invalid_commands = array("INSERT", "DELETE", "UPDATE", "DROP", "TRUNCATE", "APPEND"); foreach($invalid_commands as $c){ if (strpos($temp, $c) !== false){ return false; } } return true; }
/*query *Input: A (hopefully valid) oracle query *returns the parsed query if execution was valid *returns false if not */ public function query($query){ if (!$this->is_valid($query)){ die ("Query Contains Illegal Command! Exiting script"); }
/*BubbleSort2 *Sorts a 2d array, based on a certain column (sorts numerically) *returns the sorted array */ public function BubbleSort2($sort_array,$column = 0,$reverse = true){ $lunghezza=count($sort_array); for ($i = 0; $i < $lunghezza ; $i++){ for ($j = $i + 1; $j < $lunghezza ; $j++){ if($reverse){ if ($sort_array[$i][$column] < $sort_array[$j][$column]){ $tmp = $sort_array[$i]; $sort_array[$i] = $sort_array[$j]; $sort_array[$j] = $tmp; } }else{ if ($sort_array[$i][$column] > $sort_array[$j][$column]){ $tmp = $sort_array[$i]; $sort_array[$i] = $sort_array[$j]; $sort_array[$j] = $tmp; } } } } return $sort_array; }
}
ignore the bubblesort
On the ajax page (the first snippet) everything seems to work fine until I try to build that data array. It just returns empty. I have verified that it is the exact same query on the main page (which executes the query successfully) and the ajax page.
One thing to note. I pass the query from php to javascript, and then back to PHP again. I use json_decode when passing to javascript from PHP. However, this doesn't seem to have an effect on the query, as I checked them, and they appear to be the same. Im really at a loss for why this isn't working.
is what i'm trying to do possible? I think it is but im not sure any more... anyone have any insight