From 709eec1b9b02cdafa219388bfef8052a91aca6a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Chapeaux?= Date: Thu, 6 Sep 2001 23:48:51 +0000 Subject: [PATCH] End of part 3 of patch #458014: fulltext indexes support --- tbl_addfield.php3 | 15 +++++++++++++++ tbl_alter.php3 | 1 + tbl_create.php3 | 24 +++++++++++++++++++++++- tbl_properties.inc.php3 | 26 +++++++++++++++++++++----- 4 files changed, 60 insertions(+), 6 deletions(-) diff --git a/tbl_addfield.php3 b/tbl_addfield.php3 index 4a2571f12..6a78f257e 100755 --- a/tbl_addfield.php3 +++ b/tbl_addfield.php3 @@ -124,6 +124,21 @@ if (isset($submit)) { } } // end if + + // Builds the fulltext statements and updates the table + $fulltext = ''; + if (MYSQL_INT_VERSION >= 32323 && isset($field_fulltext)) { + for ($i = 0; $i < count($field_fulltext); $i++) { + $j = $field_fulltext[$i]; + $fulltext .= backquote($field_name[$j]) . ', '; + } // end for + $fulltext = ereg_replace(', $', '', $fulltext); + if (!empty($fulltext)) { + $sql_query .= "\n" . 'ALTER TABLE ' . backquote($db) . '.' . backquote($table) . ' ADD FULLTEXT (' . $fulltext . ')'; + $result = mysql_query('ALTER TABLE ' . backquote($db) . '.' . backquote($table) . ' ADD UNIQUE (' . $fulltext . ')') or mysql_die(); + } + } // end if + // Go back to table properties $message = $strTable . ' ' . htmlspecialchars($table) . ' ' . $strHasBeenAltered; include('./tbl_properties.php3'); diff --git a/tbl_alter.php3 b/tbl_alter.php3 index e0c85f29b..2900515cb 100755 --- a/tbl_alter.php3 +++ b/tbl_alter.php3 @@ -77,6 +77,7 @@ if (isset($submit)) { $sql_query = 'ALTER TABLE ' . backquote($db) . '.' . backquote($table) . ' CHANGE ' . $query; $result = mysql_query($sql_query) or mysql_die(); $message = $strTable . ' ' . htmlspecialchars($table) . ' ' . $strHasBeenAltered; + $btnDrop = 'Fake'; include('./tbl_properties.php3'); exit(); } diff --git a/tbl_create.php3 b/tbl_create.php3 index 90a83ce9f..8e701da1c 100755 --- a/tbl_create.php3 +++ b/tbl_create.php3 @@ -130,7 +130,29 @@ if (isset($submit)) { if (!empty($unique)) { $unique = ', UNIQUE (' . $unique . ')'; } - $query_keys = $primary . $index . $unique; + + // Builds the fulltextes statements + if (!isset($fulltext)) { + $fulltext = ''; + } + if (!isset($field_fulltext) || MYSQL_INT_VERSION < 32323) { + $field_fulltext = array(); + } + for ($i = 0; $i < count($field_fulltext); $i++) { + $j = $field_fulltext[$i]; + if (!empty($field_name[$j])) { + if (get_magic_quotes_gpc()) { + $field_name[$j] = stripslashes($field_name[$j]); + } + $fulltext .= backquote($field_name[$j]) . ', '; + } + } // end for + $fulltext = ereg_replace(', $', '', $fulltext); + if (!empty($fulltext)) { + $fulltext = ', FULLTEXT (' . $fulltext . ')'; + } + + $query_keys = $primary . $index . $unique . $fulltext; $query_keys = ereg_replace(', $', '', $query_keys); // Builds the 'create table' statement diff --git a/tbl_properties.inc.php3 b/tbl_properties.inc.php3 index a0f5a825b..a0f87f7e9 100755 --- a/tbl_properties.inc.php3 +++ b/tbl_properties.inc.php3 @@ -39,6 +39,7 @@ if (!$is_backup) { echo " $strPrimary\n"; echo " $strIndex\n"; echo " $strUnique\n"; + echo " $strIdxFulltext\n"; } else { for ($i = 0; $i < $num_indexes; $i++) { echo " $strSequence\n"; @@ -214,14 +215,20 @@ for ($i = 0 ; $i < $num_fields; $i++) { $checked_primary = ''; } if (isset($row) && isset($row['Key']) && $row['Key'] == 'MUL') { - $checked_index = ' checked="checked"'; + $checked_index = ' checked="checked"'; } else { - $checked_index = ''; + $checked_index = ''; } if (isset($row) && isset($row['Key']) && $row['Key'] == 'UNI') { - $checked_unique = ' checked="checked"'; + $checked_unique = ' checked="checked"'; } else { - $checked_unique = ''; + $checked_unique = ''; + } + if (MYSQL_INT_VERSION >= 32323 + &&(isset($row) && isset($row['Comment']) && $row['Comment'] == 'FULLTEXT')) { + $checked_fulltext = ' checked="checked"'; + } else { + $checked_fulltext = ''; } echo "\n"; ?> @@ -235,6 +242,15 @@ for ($i = 0 ; $i < $num_fields; $i++) { /> = 32323) { + echo "\n"; + ?> + + /> + + = 32323) + echo "\n"; } // end if (empty($num_indexes)) } // end if ($action ==...) echo "\n"; @@ -304,7 +320,7 @@ if ($action == 'tbl_create.php3' && MYSQL_INT_VERSION >= 32300) { } // end if } // end while } // end if - mysql_free_result($tables); + mysql_free_result($result); echo "\n"; ?>