1
확인란이있는 테이블이 있습니다. checbox를 사용하여 사용자가 선택한 데이터베이스에 특정 행의 숨겨진 값을 삽입하고 싶습니다. 그러나 언제나 데이터베이스에 레코드를 저장하는 데 사용되었습니다. 그것은 심지어 선택되지 않은 하나의 레코드 만 삽입하고 사이트의 테이블에서 상위 레코드입니다. 다음은 내 코드선택된 체크 박스의 숨겨진 필드 삽입하기
<?php
$i = 0;
<td><?php echo $record['a'];?></td>
<td><?php echo $record['name']; ?>
<input type="hidden" name="name[]" value="<?php echo $record['name']; ?>"</td>
<td><?php echo $record['contact'];?>
<input type="hidden" name="contact[]" value="<?php echo $record['contact']; ?>"
</td>
<td><?php echo $record['district'];?>
<input type="hidden" name="district[]" value="<?php echo $record['district']; ?>"
</td>
<td>
<input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $i++;?>" />
</td>
<?php }?>
<input type="submit" value="Save" name="save" />
<?php
if ($_POST['save'])
{
foreach ($_POST['checkbox'] as $i)
{
$save = "insert into tablename(id,name,contact,district) values (NULL, '{$_POST['name']'[$i]}'{$_POST['contractorname'][$i]}','{$_POST['district'][$i]}')";
mysql_query($save) or die("Mistake in Query");
}
echo "Record saved Successfully";
}
?>
당신은''태그 안에'
답변
$ i = 0; 그 루프 내부 루프가 돌아갈 때마다 $ i = 0; 카운터를 0으로 재설정합니다. 이렇게하면 모든 확인란의 값이 0이됩니다.이를 해결하려면 $ i = 0; 루프가 시작되기 전에
출처
2014-01-28 12:44:23 NLSaini
완료, 그 근무 .. 감사합니다 – Ricky
가 사용자의 입력 요소 주위에 foreach는 루프가없는, 또는 임대에 당신이 게시 한 코드의 일부에없는 것입니다. 그러나 제출 버튼 앞에
}
을 붙이면 이전 코드에서 시작하는 루프가 있다고 가정 할 수 있습니다.루프 내에
$i = 0;
을 설정하고 나중에echo $i++
을 사용하여 확인란의 값을 증가시킵니다. 그러나 (가정 된) 루프가 실행될 때마다$i = 0;
은 카운터를0
으로 재설정합니다. 그 결과 모든 체크 박스의 값은 동일한0
입니다. 이를 해결하려면 루프가 시작될 때$i = 0;
앞에을 설정하십시오.출처
2014-01-28 12:30:20
우선 데이터베이스에 입력하기 전에 항상 입력을 제거하십시오. 그렇지 않으면 SQL 인젝션 공격에 취약합니다. mysql_real_escape_string()과 같은 함수를 사용하십시오. 또한 PHP의 mysql 라이브러리는 더 이상 사용되지 않으므로 MySQLi 또는 PDO : MySQL을 사용해야합니다.
출처
2014-01-28 12:35:03
관련 문제