2014-07-23 2 views
-2

테이블에 많은 행이 있습니다. 열 중 하나는 name입니다. blog_id이라는 새 열도 있습니다. 이 같은 각 blog_id을하고 싶습니다 :각 행의 열을 새 열로 업데이트

$blog_id = strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $name))); 

나는이 시도 :

$con=mysqli_connect("localhost","foo","bar","blog"); 

$fetch = mysqli_query($con,"SELECT name 
FROM entries"); 

foreach($fetch as $name2){ 

$id = strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $name2))); 

$result = mysqli_query($con,"INSERT INTO entries (blog_id) 
VALUES ('$id')"); 

} 
mysqli_close($con); 

을하지만 오류 내가 잘못 뭐하는 거지 strtolower() expects parameter 1 to be string, array given를 얻을?

+1

당신이 밖으로 만들 수 :

$fetch = mysqli_query($con,"SELECT id, name FROM entries"); 

는 다음과 같이 뭔가해야 ? 문자열을 예상했을 때 배열을 주었다고 말하는 부분은 무엇입니까? 그런 다음'preg_replace()는 subject 매개 변수가 배열이면 배열을 반환하고, 그렇지 않으면 문자열을 반환합니다. '라는 php.net/preg_replace로 이동합니다. 주의 깊게 읽으십시오, ** 언급 ** 배열 **. –

답변

1

시도 : 각 행 전체를 반복하고

foreach($fetch as $row){ 
    $id = strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $row['name']))); 
    $result = mysqli_query($con,"INSERT INTO entries (blog_id) VALUES ('$id')"); 
} 

는, 각 행은이 경우 '이름'으로, 조회에서 선택한 항목의 배열입니다, 당신이 돌이에 기대했던 것 같아요 이름을 가지는 행 대신에 이름의 배열.

편집

나는 너무 확실하기 위하여이 방법을 아마 것 대신 행을 삽입, 당신이 그들을 업데이트해야 2

while($row = mysqli_fetch_array($fetch)){ 
    $id = strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $row['name']))); 
    $result = mysqli_query($con,"INSERT INTO entries (blog_id) VALUES ('$id')"); 
} 

편집 할 수 있습니다. 이 경우 당신은 또한 행의 ID를 얻어야한다, 그래서 당신의 SELECT 코드는 다음과 같습니다 오류가 말하는

while($row = mysqli_fetch_array($fetch)){ 
    $id = strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $row['name']))); 
    $result = mysqli_query($con,"UPDATE entries SET blog_id='".$id."' WHERE id=".$row['id']); 
} 
+0

이 코드는 업데이트하는 대신 새로운 행을 만드는 것으로 보입니다. – maxisme

+0

오, 죄송합니다. 코드의 INSERT 문 때문에이 작업을 수행하고 싶습니다. 내 대답이 업데이트됩니다. –

+0

오류가 발생했습니다 : mysql_fetch_array()는 매개 변수 1이 리소스가 될 것으로 기대하고, 주어진 객체는 mysqli_fetch_array이어야합니다! – maxisme

관련 문제