2014-12-05 33 views
-1

我有一個表: -如何檢查列名是否是「名稱」?

|----------|-----------------------------------------|------------------| 
| 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

所以呢??我可以使用'desc' ....不能嗎?我的意思是封裝desc在後傾 – Saswat 2014-12-05 14:36:49

+0

你可以正確引用。只需要永遠記住,因爲這個原因,通常會避免 – exussum 2014-12-05 14:37:31

+0

雖然它主要是詢問關於字符串搜索的問題,但您的上一個問題[刪除掉所有在「(」和「)」下的文本](http://stackoverflow.com/問題/ 27317352 /刪除所有文本 - 下 - 和)似乎已經得到了這個答案呢? – halfer 2014-12-05 19:07:56

回答

1

我會建議使用associative陣列..也foreach循環,就像這樣:

while ($row = mysql_fetch_assoc($result)) //retrieving each row's ASSOCIATIVE ARRAY 
    { 
     foreach ($row as $key => $value) // $key will hold the name of the field 
     { 
      // now you can go like this: 
      if($key != 'name') 
       $output .= '"'.$value.'",'; 
      else 
       // whatever you want 

     } 
    } 

正如一個側面說明,mysql_功能已被棄用。您應該使用mysqli_PDO

0

使用mysql_fetch_array($ result,MYSQL_ASSOC))。這樣一來,你的結果回來:

array (
    'id'=>123, 
    'name'=>"Whatever the name is", 
    'desc'=>"desc 1" 
); 
foreach ($row as $name=>$value) 
    ... 
0

使用foreach

foreach($row as $key => $value) 
{ 
    if($key == 'name') 
    { 
     ... 
    } 
} 

$key是數組和$value的索引鍵嘗試是該值這麼

'key' => 'value'