<tr> <td><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td><table width="100%" border="0" cellpadding="0" cellspacing="0"> <?php foreach ($record as $key => $value) { $field_properties = $field_features[$key]; $key = convert_field_name($key); if (gettype($value) == "NULL") { $new_value = "[NULL]"; } else { if ($value == "") { $new_value = "[EMPTY]"; } else { if ($FORM['fkey'] != "off" and $fkey_used and is_array($field_properties['fkey'])) { $new_value = mysql_get_foreign_key_text($mysql_connect_id, $field_properties['fkey']['DB'], $field_properties['fkey']['TB'], array($field_properties['fkey']['FIELD_KEY'] => $value), $field_properties['fkey']['FIELD_DISPLAY']); } else { $value_lines = preg_split("/\r*\n/", $value); $new_valuez = array(); foreach ($value_lines as $linez) { $new_valuez[] = wordwrap($linez, 50); } $new_value = htmlspecialchars(join("\n", $new_valuez)); } } } ?> <tr> <td width="20%" class="arial_10pt" nowrap><b> <?php print $key; ?>
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; }