2014-12-05 17 views
-3

我有一個表刪除掉那些下的所有文字「(」和「)」

|----------|-----------------------------------------|------------------| 
| 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列,那麼括號內的文本將被刪除,否則不會。 我該如何做到這一點?

+0

還有其他的,但這可能是最簡單的一個。爲什麼他們首先像那樣存儲?把這些塊分成多列可能會更好。 – Erik 2014-12-05 13:50:11

+0

像用戶已經說過你的存儲數據不正確。如果您無論如何需要拆分字符串,您可以嘗試查找「:」字符,然後僅顯示字符串的第一部分 – ericpap 2014-12-05 13:51:45

+0

即使輸出匹配,在概念上您的解決方案也是錯誤的。你沒有刪除「(」和「)」之間的東西,你只是刪除超出「(」。解決方案Anthony D'Andrea建議的解決方案是對你的問題正確的解決方案 – Bartserk 2014-12-05 13:58:51

回答

1

通過使用方法mysql_num_fields您可以獲得編號數組中的行。這意味着您在訪問$ row數組時將指定的索引將決定您正在訪問的列。要做到這一點,你有兩種解決方法:

所以一旦你有哪些指標是你的男人字段列表,你只需要做一個簡單的條件,如if ($row == 1) {trim();},你就完成了!

+0

我想要的東西像if($ key =='name')導致數據將來自具有相同的列名稱但索引不同的表1或表2 ...我甚至不能使用mysql_fetch_assoc ...因爲我需要使用循環與計數器 – Saswat 2014-12-05 14:10:59

+0

然後,你肯定需要的方法mysql_list_fields。將其存儲到$ variable中並像$ variable [1] =='name'一樣訪問它。 – Bartserk 2014-12-05 14:12:50

+0

但是如果從表1中$ variable [1]可以變成名稱,而從表2中變量$ variable [4]變成名稱? – Saswat 2014-12-05 14:18:12

0

您可以通過爆炸是:

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

檢查我的問題,我編輯過它 – Saswat 2014-12-05 14:01:02

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

,擺脫空間

$data = trim($data); 
-1

您可以在「(」字符後爆炸的代碼,然後在取出空間以「修剪」功能結束:

$input = "Empire : (Kill everybody now)"; 

$input2 = explode("(",$input); 

$input3 = trim($input2[0]); 

現在$input3變量持有您正在尋找的結果。

1

使用mysql_fetch_assoc而不是mysql_fetch_array。

相關問題