2014-10-01 2 views
1

내 프런트 페이지의 뉴스 피드를 만들려고 노력하고있는 몇 가지 코드가 있습니다. 지금까지는 업데이트가 작동하지 않습니다. Ps는 코드를 정리하지 않고 실용적으로 만듭니다. 버전 1이므로 코드를 정리하지 않았습니다. 감사 여호수아PHP MySQL 업데이트

업데이트 파트

if(isset($_POST['edit'])) 
    { 
    $checkbox = $_POST['checkbox']; 

    for($i=0;$i<count($_POST['checkbox']);$i++){ 

    $edit_id = $checkbox[$i]; 

     echo "<textarea name='editsavetext' id='editsavetext' rows='4' cols='50'>$edit_id</textarea>"; 
    }}; 

    if(isset($_POST['editsave'])){ 

    echo $editsavetext; 

    $editsavetext = $_POST['editsavetext']; 

    $sql='UPDATE $tbl_name SET home_show = $editsavetext WHERE home_show = $edit_id'; 

    $result = mysql_query($sql); 

    if($result){ 
echo "<meta http-equiv='refresh' content='0; url=http://****' />";}}; 

풍부한 브래드 쇼

잘 순간에 코드 나던 작업 전 틱이고 $의 edit_id 인해를 사용하여 무엇을 편집하는 것을 체크 박스 기억하는 시스템을 필요로하기 때문에 저장하지 않으면 결과가 기억 나지 않아서 그다지 효과가 없습니다. 이 I say $a을 작성합니다

$a = "hi"; 

echo 'I say $a'; 

: 당신은 같은 코드가 있다면

이 모든 통해 파고없이
if(isset($_POST['edit'])) 
{ 
$checkbox = $_POST['checkbox']; 

for($i=0;$i<count($_POST['checkbox']);$i++){ 

$edit_id = $checkbox[$i]; 

    echo "<textarea name='editsavetext' id='editsavetext' rows='4' cols='50'>$edit_id</textarea>"; 
}}; 

if(isset($_POST['editsave'])){ 

echo $editsavetext; 

$editsavetext = $_POST['editsavetext']; 

$sql="UPDATE `$tbl_name` SET home_show = '$editsavetext' WHERE home_show=':edit_id'"; 

$result = mysql_query($sql); 

if($result){echo "<meta http-equiv='refresh' content='0; url=http://****' />";}}; 
+0

당신이 $의 SQL'에 쿼리를 변경하는 경우 = "UPDATE의 $ tbl_name에의 SET home_show = '$입니다 editsavetext 'WHERE home_show ='$ edit_id ' ";', 작동합니까? –

+0

참고 : mysql_ * 함수는 더 이상 사용되지 않으며 이후 버전의 PHP에서 제거 될 예정입니다. 새로운 코드를 써서는 안됩니다. 대신에 mysqli_ * 또는 PDO를 사용하십시오. –

답변

1

,

'UPDATE $tbl_name SET home_show = $editsavetext WHERE home_show = $edit_id' 

"UPDATE `$tbl_name` SET home_show = '$editsavetext' WHERE home_show = $edit_id" 

을해야합니다. 당신이

echo "I say $a"; 

이 있다면

I say hi를 작성합니다.

또한 텍스트는 SQL 쿼리의 스피치 마크에 있어야합니다.

이 코드는 보호하지 않고 사용하기에 안전하지 않으므로 SQL 주입을 찾아야합니다. 마지막으로, 왜 mysql_query을 사용하고 있습니까? 문서를 읽으십시오 : http://php.net/manual/en/function.mysql-query.php - 더 이상 사용되지 않습니다.

enter image description here

+0

죄송합니다.'home_show = '$ edit_id'. 나는 대답을 간절히 원한다는 것을 이해합니다. ;) –

+0

나는 그것을 정수로 처리하는 것을 원하지 않는다. –

+0

아니요 변경되지 않았습니다 – user3818340

0

귀하의 업데이트 문은 잘못된 것 같다.
작은 따옴표를 사용하고 그 안에 $edit_id을 사용하고 있습니다. 이중 따옴표를 사용하십시오.
이 (int 치의 home_show 있다고 가정합니다.) 시도 -

$sql="UPDATE $tbl_name SET home_show = $editsavetext WHERE home_show = $edit_id"; 
    ^                  ^

열 home_show 가정 VARCHAR가

$sql="UPDATE $tbl_name SET home_show = '$editsavetext' WHERE home_show = '$edit_id'"; 
    ^        ^   ^    ^  ^^