У меня есть таблица
|----------|-----------------------------------------|------------------| | 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
текст в скобках будет удален, иначе нет. Как я могу это достичь?
Используя метод 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
содержит результат, который вы ищете.