2014-09-03 1 views
0

현재 포인트/보상 시스템에서 작업하고 있습니다. 제가 직면 한 문제는 데이터베이스 쿼리와 같습니다. PHP - 확인란을 선택하면 여러 MySQL 값을 업데이트하려고 시도합니다.

$result = mysqli_query($con,"SELECT * FROM users WHERE usertype='group_two' ORDER BY 
points DESC"); 
while($row = mysqli_fetch_array($result)) { 
echo "<li class='select-area'><label><span>" . $row['firstname'] . "</span>"; 
echo "<span>" . $row['lastname'] . "</span>"; 
echo "<span>" . $row['points'] . "</span><span><input type='checkbox' 
name='receipient_id' 
value=" . $row['id'] ." /></span></label></li>"; 
} 

포인트를받을 수있는 사용자를 나열하고, 그 잘 작동하지만 여러 사용자를 선택하면 그것은 단지 내가 모든 검사에 포인트를 보내도록하고 싶은 마지막 확인 사용자에게 포인트를 보낸다 사용자.

내 업데이트 쿼리는 다음과 같습니다.

$update_query="UPDATE users u1 JOIN users u2 
ON u1.id = '$sender_id' AND u2.id= receipient_id 
SET u1.points = '$sender_updated_points', 
u2.points = '$receiver_updated_points';"; 

업데이트를 위해 여러 행을 선택하기 위해 확인란을 사용하지 못한 특정 트릭이 있습니까? 나는 약 16 시간 동안 인터넷 검색을 해왔다. $_POST['receipient_id']은 숫자 배열이 포함됩니다 :

답변

0

는이 방법으로

<input type='checkbox' name='receipient_id[]' value=" . $row['id'] ." /> 
             ^

, 선택된 체크 박스와 양식이 PHP 스크립트에 보낼 때, 변수가 같은 배열로 체크 박스의 name 속성을 제공 할 수 있습니다 0, 1, 2 등의 순서로 인덱스를 갖는 선택된 체크 상자의 값으로.

$_POST['receipient_id'][0]은 첫 번째로 선택된 체크 박스의 값이되고 $_POST['receipient_id'][1]은 두 번째로 선택된 체크 박스의 값이됩니다.

+0

을 :) 도움이

if(isset($_POST['submit'])) { if (is_array($_POST['updcbx'])) { foreach($_POST['updcbx'] as $upd) { $update[$upd] = $upd; $sql = "UPDATE TABLE SET FIELD = 'value' WHERE id = '$delete[$upd]'"; mysql_query($sql); } } } 

희망과 같은 코드를 사용할 수 있습니다, 나는 나에게 보낼 수 없습니다 오류를 받고 있어요이를하려고 할 때 해당 ID를 가리 킵니다. – Eddie

+0

어떤 오류가 발생합니까? – Jenz

+0

이것은 실행 중입니다. if (isset ($ _ GET [ 'receipient_id']) == ('invalid')) { echo "잘못된 ID를 선택했습니다."; } – Eddie

0

시도해 볼 수 있습니까? 당신이 이름 배열 이름 = "receipient_id"에 있어야 다중 값을 보내려면

= 내가 같은 사용 방법이이 쿼리

$update_query="UPDATE users u1 JOIN users u2 
    ON u2.id= u1.receipient_id 
    SET u1.points = '$sender_updated_points',u2.points = '$receiver_updated_points' 
    where u1.id = '$sender_id';"; 
0

제안 "[]를 receipient_id" 조건은 당신하지만 난 당신의

첫 번째 데이터베이스에서 가져온 여러 데이터를 삭제하는 데 사용으로 while..loop - 배열로 이름을

<input type="checkbox" id="updcbx" name="updcbx[]" value="'.$row['id'].'"/> 

는 PHP를 제출보다, 당신이 불행하게도

관련 문제