2016-11-09 1 views
0

버튼을 누르면 mysql 열을 변경하고 싶다. 내 현재 코드 :버튼으로 mysql 열 변경

 <?php if ($result = $mysqli->query("SELECT type FROM users WHERE id_user = 2 ")) { 

      $r = mysqli_fetch_assoc($result); 

      } 
     print_r($r); 

     if(isset($_POST['d'])){ 
     $sql = "UPDATE users SET type= 'd' WHERE id_user = 2 "; 
     } 
     ?> 
     <input type="submit" value="d" name="d" /> 

내가 버튼을 누를 때 ID = 2 만은, 아무 일도 발생하지 기본적하여 설정되어 열 "유형"으로 변경하고 싶습니다. if (isset())에서 내가 뭘 잘못 했습니까?

편집 : 모든 응답자 해결할 :

<?php 
if(isset($_POST['d'])){ 
$var = $_POST['d']; 
$sql = "UPDATE users SET `type`= '$var' WHERE id_user = 2 "; 
$mysqli->query($sql) or die($mysqli->error); 
} 
if(isset($_POST['a'])){ 
$var = $_POST['a']; 
$sql = "UPDATE users SET `type`= '$var' WHERE id_user = 2 "; 
$mysqli->query($sql) or die($mysqli->error); 

} 
?> 
<form action="#" method="POST"> 
    <input type="text" value="d" name="d"/> 
    <input type="submit" value="d"/> 
</form> 
<form action="#" method="POST"> 
    <input type="text" value="a" name="a"/> 
    <input type="submit" value="a"/> 
</form> 


<?php 

if ($result = $mysqli->query("SELECT `type` FROM users WHERE id_user = 2 ")) { 

    $r = mysqli_fetch_assoc($result); 

    } 
print_r($r); 
print_r($_POST) 
?> 
+1

이것은'

'태그 안에 있습니까? "아무 일도 일어나지 않는다"는 말은 아무 일도 일어나지 않고 페이지가 그대로 유지되거나 페이지가 다시로드되지만 데이터베이스 작업이 없다는 것을 의미합니까? –

+0

예. 유일한 변경 사항은 끝 태그 "? d = d"로 된 내 URL입니다. 인쇄는 – pr0cz

+1

과 동일하게 유지되며 '$ _POST'가 아닌'$ _GET' 변수가 있습니다. – rbr94

답변

2

의견에 언급했듯이 : (그리고 내가 남긴 의견 외에).

변수를 할당 한 다음 쿼리에 전달하고 견적을 지정하십시오.

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

    $var = $_POST['d']; ... UPDATE users SET type = '$var' WHERE... 

} 

그러나 당신은 SQL 주입에 개방되어 있기 때문에, 준비된 문을 사용하는 방법을 배우게 않습니다

1

은이 같은 쿼리에서 변수를 설정하고 if 절 안에 당신의 선택 문장의 값을 출력해야합니다. @Patrick Q는 TYPE는 MySQL의 키워드이며, 역 따옴표로 묶어야합니다 언급 또한 같이

PHP :

if ($result = $mysqli->query("SELECT `type` FROM users WHERE id_user = 2 ")) { 
    $r = mysqli_fetch_assoc($result); 
    print_r($r); 
} 

if(isset($_POST['d'])) { 
    $sql = "UPDATE users SET `type`= '" . $_POST['d'] . "' WHERE id_user = 2 "; 
    $mysqli->query($sql); 
} 

HTML : 당신이 정말로 방법으로 POST를 사용

<form action="#" method="POST"> 
    <input type="text" value="d" name="d"/> 
    <input type="submit" value="d"/> 
</form> 

에주의 양식이 아니라 GET.

+0

나는 그것을 시도 할 것이다! 감사! – pr0cz

+0

코드를 삽입했지만 여전히 동일하게 유지됩니다. 페이지가 새로 고침되고 인쇄물이 변경되지 않았습니다. 수동으로 "새로 고침"을 클릭하면 경고 메시지가 나타납니다. 다시 돌아 가면 작업이 다시 완료됩니다. 혼란 스럽습니다. – pr0cz

+0

@ pr0cz 첫 번째 쿼리 (선택)에 대해 잘 모르겠습니다. 왜 이걸 전혀하지? – rbr94