2017-03-05 1 views
0

저는 PHP가 처음이에요.UPDATE 쿼리가 while 루프에서 작동하지 않습니다.

기본 CRUD 기능인 지식 기반 시스템을 구축하고 있습니다. 내가 어디에 테이블의 각 열에 대한 모든 값을 NULL로 필요가 붙어지고 있어요.

기본적으로 "KB 편집"형식입니다. 나는 체크 박스 배열을 가지고 있는데,이 테이블을 편집 할 때 'category_kb_members'테이블의 내 범주 열에서 KB 번호를 지우고 싶습니다.

내 코드는이 비트와 별개로 잘 작동합니다.

이 내 현재 코드입니다 :

//Clear all categories for this KB 
while($catrow = mysqli_fetch_array($categorylist)){ 
$catname = ""; 
$catname = $catrow['name']; 
mysqli_query ($dbc, "UPDATE category_kb_members SET $catname=NULL WHERE $catname ='$kbid';"); 
} 

[소스가 데이터베이스에서 깨끗 여기에 SQL 주입 접하게 언급 할 필요를주의하여 주시기 바랍니다.]

은 "$ Categorylist는"의 배열입니다 카테고리 이름 - 업데이트 할 테이블에 각 카테고리에 대한 열이 있습니다.

"$ kbid"는 URL의 $ _GET에서 설정되며 제거 할 KB 번호와 일치하며 유효하며 작동합니다.

내 루프는 쿼리하고 열에 KB 번호가있는 경우 각 열을 NULL로 업데이트합니다. 나중에이 코드를 관련 열에 다시 추가합니다.

MYSQL에 대해이 쿼리를 실행 했으므로 SQL 쪽에서 잘 작동합니다.

왜 업데이트가 작동하지 않는가요?

+0

'$ catname = '$ kbid''이 키는 어디에 있습니까 ?? –

+0

이상입니다 ... 설정되어 있고 유효합니다 ... – Rich

+0

'$ catname = NULL' 여기에 열 이름이 맞습니까? '$ catname' –

답변

0

의견을 보내 주셔서 감사합니다. 도움을 준 모든 사람에게 크레딧 제공.

나는 코드까지 더이었다 $ catname

$categorylist = mysqli_query($dbc,"SELECT name FROM categories"); 

내 쿼리를 복사됩니다. 이 변수는 이미 설정되어 있고 위의 코드에서 작동하지만 위 코드에서 위의 내용이 모두 지워져 있어야합니다. 내 루프 위의이 부분을 다시 실행하면 정상적으로 작동합니다. 위의 변수를 덮어 쓰는 것이 무엇인지 파악해야합니다.

제게 세 번째로 생각하게 해준 "Abdulla"와 모두에게 감사드립니다.