Удалите весь текст, который находится под "(" и ")"

У меня есть таблица

|----------|-----------------------------------------|------------------| | id | name | desc | |----------------------------------------- ----------|------------------| | 123 | Empire : Kill (Kill everybody now) | desc 1 | |----------------------------------------------------|------------------| | 243 | Witch : Show (Bloodthirst part 2) | desc 2 | |----------------------------------------------------|------------------| 

Я пишу следующий код для извлечения данных из таблицы

 $columns_total = mysql_num_fields($result); while ($row = mysql_fetch_array($result)) //retrieving each row { for ($i = 0; $i < $columns_total; $i++) { /*appending each column data into the row of the data encapsulated within double quotes and separated by a comma */ $output .='"'.$row["$i"].'",'; } } 

Но я должен проверить, является ли $row[$i] значением столбца name или столбца desc . Если это столбец name текст в скобках будет удален, иначе нет. Как я могу это достичь?

Solutions Collecting From Web of "Удалите весь текст, который находится под "(" и ")""

Используя метод mysql_num_fields вы получаете строки в пронумерованном массиве. Это означает, что указанный вами индекс при доступе к массиву $ row определит, к какому столбцу вы обращаетесь. Для этого у вас есть два решения:

  • Вы можете создать статическое соответствие column_name -> index в соответствии с запросом, который вы используете. Если переменная $ result содержит что-то вроде select * from table индекс будет номером 1.

  • Вы можете получить список полей, используя метод mysql_list_fields http://php.net/manual/en/function.mysql-list-fields.php

Итак, как только у вас есть индекс, который вам нужен, вам просто нужно сделать простой условный, как if ($row == 1) {trim();} и все готово!

 $data = preg_replace('/\(.*\)/','',$data); 

И избавиться от пространства

 $data = trim($data); 

Используйте mysql_fetch_assoc вместо mysql_fetch_array.

Вы можете взорвать его:

 $format_array = explode(":",$data); $format_data = $format_array[0]; echo $format_data.':'; 

Вы можете взорвать код после символа «(», а затем удалить место в конце с помощью функции «trim»:

 $input = "Empire : (Kill everybody now)"; $input2 = explode("(",$input); $input3 = trim($input2[0]); 

Теперь переменная $input3 содержит результат, который вы ищете.