dbLink = $this->attachDB(); if (isset($_COOKIE['devprod'])) { // devprod: cookie is only used to persist devprod $this->useTwoServers = $_COOKIE['devprod']; } } private function attachDB() { //Connect To Database - "if" statement choses from local (dev) and published (prod) hosts if (strstr($_SERVER['SERVER_NAME'],'jcnolan.com') !== FALSE || strstr($_SERVER['SERVER_NAME'],'gamitrain.com') !== FALSE) { $hostname="applesample2.db.3205847.hostedresource.com"; $username="applesample2"; $password="L3tm33!n"; $dbname="applesample2"; } else { $hostname="localhost"; $username="root"; $password=""; $dbname="apple_sample2"; } $link = mysql_connect($hostname,$username,$password) or die (""); mysql_select_db($dbname, $link); return ($link); } /////////// Utility Functions /////////////////////////////////////////////// private function getFieldNamesAsArray($tableName) { $queryStr = "DESCRIBE `{$tableName}` "; $result = mysql_query($queryStr); $fieldNames = array(); if ($result) { while($row = mysql_fetch_array($result)) {$fieldNames[] = $row['Field'];} } return $fieldNames; } private function getArrayFromSQLResult($tableName, $result){ $fieldNames = array(); $tableData = array(); if ($result) { $fields = mysql_num_fields($result); for ($i=0; $i < $fields; $i++) {$fieldNames[$i] = mysql_field_name($result, $i);} while($row = mysql_fetch_array($result)) { $rowData = array(); foreach ($fieldNames as $id=>$fName) {$rowData[$fName] = $row[$fName];} $tableData[] = $rowData; }; } if (count($tableData) == 0) { // No records found... need to get the field names another way // Generally happens when a non-existant table is referenced (bad!) // But can also happen when the table is empty // ToDo: make this heartier $fieldNames = $this->getFieldNamesAsArray($tableName); } return array($tableData, $fieldNames); } /////////// Delete / Add Functions /////////////////////////////////////////////// public function deleteTableRow($tableName,$index) { $queryStr = "DELETE FROM `{$tableName}` WHERE `index` = {$index}"; $result = mysql_query($queryStr); return $result; } public function addTableRow($tableName, $requestData) { $ids = ''; $values = ''; $commaDelim = ''; // Identify data ids / values from REQUEST $idArray = array(); foreach ($requestData as $fName=>$fData) { // If value ends in '_input' it is an input field $id = preg_replace('/_input$/','', $fName); if ($id != $fName) $idArray[$id] = $fData; } // Build query string foreach ($idArray as $fId=>$fieldVal) { $ids .= $commaDelim."`{$fId}`"; $values .= $commaDelim."'{$fieldVal}'"; $commaDelim = ','; } $queryStr = "INSERT INTO `{$tableName}` ( {$ids} ) VALUES ( {$values} );"; $result = mysql_query( $queryStr ); return $result; } /////////// Get Functions /////////////////////////////////////////////// public function getTableAsArray($tableName) { $queryStr = "SELECT * FROM `{$tableName}` "; $result = mysql_query($queryStr); list($tableData, $fieldNames) = $this->getArrayFromSQLResult($tableName, $result); return array($tableData, $fieldNames); } public function getServerDataAsArray() { $queryStr = "SELECT s.index, name, s.type, r.realm, os.os FROM server as `s`, os_typ as `os`, realm_typ as `r` WHERE s.os_typ = os.index AND s.realm_typ = r.index"; $result = mysql_query($queryStr); $tableName = 'server'; list($tableData, $fieldNames) = $this->getArrayFromSQLResult($tableName, $result); return array($tableData, $fieldNames); } public function getAppDataAsArray() { $queryStr = "SELECT a.index, name, domain, at.arch, st.status FROM app as `a`, arch_typ as `at`, status_typ as `st` WHERE a.arch_typ = at.index AND a.status_typ = st.index"; $result = mysql_query($queryStr); $tableName = 'app'; list($tableData, $fieldNames) = $this->getArrayFromSQLResult($tableName, $result); return array($tableData, $fieldNames); } public function getDeploymentDataAsArray() { if (!$this->useTwoServers) { $queryStr = "SELECT d.index, a.name as `app`, s.name as `server` FROM deployment as `d`, app as `a`, server as `s` WHERE d.app = a.index AND d.server = s.index"; } else { // devprod: this is the only change to make it function $queryStr = "SELECT d.index, a.name as app, dserv.name as devserver, pserv.name as prodserver FROM deployment d JOIN app a on d.app = a.index JOIN server dserv on d.devserver = dserv.index JOIN server pserv on d.prodserver = pserv.index"; } $result = mysql_query($queryStr); $tableName = 'deployment'; list($tableData, $fieldNames) = $this->getArrayFromSQLResult($tableName, $result); return array($tableData, $fieldNames); } } ?>