" method="post"> <td align="center"><input type="submit" id="submit" value="Return to Menu"></td> </form> </tr> </table></td> </tr> </table></td> </tr> <?php } else { if ($FORM['f'] == "view") { $table_structure = mysql_table_structure($mysql_connect_id, $table_name); if (!$primary_key_field) { $primary_key_field = mysql_primary_key_field($table_structure); } $record = mysql_extract_record_id($mysql_connect_id, $table_name, array($primary_key_field => $FORM['pri'])); $return_to_menu_url = $_SERVER[PHP_SELF] . "?" . $FORM['return_query']; if ($field_features) { foreach ($field_features as $field_name => $features) { if ($field_features[$field_name]['fkey'] or $field_features[$field_name]['build_cat']) { $fkey_used = 1; break; } } } if ($FORM['fkey'] == "off") { foreach ($field_features as $field_name => $features) { $field_features[$field_name]['fkey'] = ""; $field_features[$field_name]['build_cat'] = ""; } }
function mysql_get_foreign_key_text($connect_id, $database, $table, $key_field, $display_fields) { if ($database) { $current_db = mysql_current_databse($connect_id); if ($current_db != $database) { mysql_change_db($connect_id, $database); } else { $database = ""; } } if (!is_array($key_field)) { print "#Error# {$key_field} should be an array [Example - array( 'id' => 'snoop' )]"; } else { if (current($key_field)) { if (preg_match("/field\\[([^\\]]+)\\]/i", $display_fields)) { $display_fields_new = $display_fields; while (preg_match("/field\\[([^\\]]+)\\]/i", $display_fields_new, $preg_results)) { $display_fields_new = str_replace($preg_results[0], "", $display_fields_new); $field_list[] = strtolower($preg_results[1]); } $fields_to_extract = join(",", $field_list); } else { $fields_to_extract = $display_fields; $text_separator = " - "; } $fkey_record = mysql_extract_record_id($connect_id, $table, $key_field, $fields_to_extract); if ($fkey_record) { #$fkey_text = join( $text_separator, $fkey_record ); if ($text_separator) { $fkey_text = join($text_separator, $fkey_record); } else { # Allows formatting of the $display_fields string $display_fields_new = $display_fields; while (preg_match("/field\\[([^\\]]+)\\]/i", $display_fields_new, $preg_results)) { $preg_value = strtolower($preg_results[1]); $display_fields_new = str_replace($preg_results[0], $fkey_record[$preg_value], $display_fields_new); } $bracket_types = array("[" => "]", "<" => ">"); foreach ($bracket_types as $open_bracket => $close_bracket) { $open_bracket = preg_quote($open_bracket); $close_bracket = preg_quote($close_bracket); $preg_query = "/(?:fk|fkey)" . $open_bracket . "([^\\.]+)\\.([^\\.]+)\\.([^=]+)=([^,]+), ([^" . $close_bracket . "]+)" . $close_bracket . "/i"; while (preg_match($preg_query, $display_fields_new, $preg_results)) { # Usage - fkey[database.table.field=value, fieldstodisplay] # Example - fkey[general.city.code=DXB, 'field<name>-field<country_code>'] $preg_results[5] = preg_replace("/^'/", "", $preg_results[5]); $preg_results[5] = preg_replace("/'\$/", "", $preg_results[5]); $text_replace = mysql_get_foreign_key_text($connect_id, $preg_results[1], $preg_results[2], array($preg_results[3] => $preg_results[4]), $preg_results[5]); $display_fields_new = str_replace($preg_results[0], $text_replace, $display_fields_new); } } $fkey_text = str_replace(",", ",", $display_fields_new); } } else { $fkey_text = "FKey [ERROR]"; } } else { $fkey_text = "[NULL]"; } } if ($database) { mysql_change_db($connect_id, $current_db); } return $fkey_text; }