2012-06-18 4 views
0

약간의 문제가 있으면 도움이 필요합니다. 쉼표로 구분 된 텍스트 그룹의 일부를 어떻게 업데이트 할 수 있습니까? 텍스트가 데이터베이스에 입력되면 각 단어 사이에 쉼표가있는 한 줄의 텍스트이지만 텍스트를 반향시키고 싶을 때 explode 함수를 사용하여 텍스트 한 줄이 아니라 개별 단어로 구분합니다 데이터베이스에.텍스트 줄에서 한 단어를 업데이트/삭제하는 방법

이제 내 질문에 어떻게 데이터베이스에서 단일 단어를 업데이트/삭제할 수 있습니까? 기억 해요, 데이터베이스의 텍스트 한 줄로되어 있습니다. 전체 텍스트 줄을 업데이트하는 데 관심이 없습니다. 텍스트의 한 단어뿐입니다.

고마워요.

$text = "name,fname,lname,class,age" ;  
$newtext = explode(",", $text) ; 
+2

아닌가? – h2ooooooo

답변

0

SQL 업데이트 쿼리에서 replace() 함수를 사용할 수 있습니다.

Update table SET text=REPLACE(text,'age','newstring') 
+1

그러나 'last_page_visited'를'last_pnewstring_visited'로 바꿉니다. – h2ooooooo

+0

WHERE text REGEXP '[[: <:]] {$ f ['age ']} [[:> :]]에 추가하는 방법은 어떻습니까? ' – sel

+0

typo : WHERE text REGEXP'[[: <:]]age[[:> :]] ' – sel

0

배열에서 단어를 업데이트하거나 제거한 다음 배열을 내파하고 데이터베이스 필드에 새 값을 저장하십시오. 그것은 (그들이 어떤 이상) 다음`WHERE` 절을 사용하여 그들 모두를 선택 데이터베이스에 별도의 행에, 그리고 이러한 태그를 필요로 데이터베이스를 변경하는 옵션

//Remove all instances of $value from $array 
function array_remove($array, $value) { 
    return array_filter($array, function ($e) use ($value) { 
     return $e != $value; 
    }); 
} 

// Add only unique values 
function array_add($array, $value) { 
    if (!in_array($value, $array)) 
    $array[] = $value; 
    return $array; 
} 

$text = "name,fname,lname,class,age" ; 
$newtext = explode(",", $text) ; 
$newtext = array_remove($newtext, 'lname'); // Remove lname 
$newtext = array_add($newtext, 'mail');  // Add mail 
$newtext = array_add($newtext, 'class'); // Won't add it again 
$newtext = implode(',', $newtext);   // name,fname,class,age,mail