2013-12-08 2 views
0

이것은 나를 위해 작동하지 않습니다, 나는 삽입과이 작업에 다른 모든 SQL statment를 사용하고 있습니다, 그러나 이것은 어떤 이유로 작동하지 않습니다.간단한 인서트가 양식에서 작동하지 않습니까?

아래 표는 다음과 같이 구성되어 있습니다. 내가 할 노력하고있어 모든 아래

**passenger_journey** 
j_id user_id 
142 1 
142 14 

는 $ USER_ID와 $ ID입니다 여행 ID입니다 로그인 된 사용자 ID를 삽입합니다. 당신이 일하는 변수는 설정되어 있습니다.

GET 메서드를 사용하여 URL에서이 문제가 발생할 수 있으므로 가능한 문제가 $ id 일 수 있다고 생각합니다.

<?php 

    $insert_passenger = "INSERT INTO `passenger_journey` VALUES ('" . mysql_real_escape_string($id) ."','" . mysql_real_escape_string($user_id) . "')"; 



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

     mysql_query($insert_passenger); 

     } 
    ?> 


<form method="POST"> 
<br/>Add yourself to this journey!<br/> 
<input type ="submit" value="Sign up for this Journey"/> 
</form> 

이것은 몇 시간 동안 나를 미치게 만들어 주어 도움이 될 것입니다.

<form method="POST"> 
    <br/>Add yourself to this journey!<br/> 
    <input type ="submit" value="Sign up for this Journey"/> 
</form> 

을 그리고 :

+0

이 값에서 온합니까? db 연결이 제대로 설정되어 있습니까? – kero

+2

'echo $ insert_passenger;는 예상 한 것입니까? 그것은 phpmyadmin이나 mysql 콘솔과 같이 작동합니까? –

+0

열의 데이터 유형은 무엇입니까? 숫자 일 경우 ' – kiks73

답변

1

이 일치하지 않는

if (isset($_POST['submit'])){ 
    mysql_query($insert_passenger); 
} 

당신은 문이 사실로하면 그것을 위해 당신의 제출 버튼에 이름을 할당해야합니다

<input type="submit" name="submit" value="Sign up for this Journey"/> 

... $ _GET 수퍼 글로벌에서 사용할 수 있으려면 양식 변수에 변수를 전달해야합니다. .

<?php 
$your_id = // define your id here, I assume in your insert query this should just be null. 
$user_id = // define your user id here however you're getting it... sessions...? 
?> 
<form method="POST" action="?id=<?=$your_id?>&user_id=<?=$user_id?>"> 

참고 : iduser_id 변수가 세션에서 오는 경우, 스크립트에서 검색 할 수있는 등 쿠키 또는 아무것도 삽입을하고, 확실히는 HTML를 통과하는 대신이 그것을 할 당신이 필요하지 않을 때 양식.

보통 MySQL에서 데이터를 삽입 할 때 관련 id 열은 auto_increment으로 설정되며 값을 전달하지 않거나 null을 전달하여 자체 값을 할당 할 수 있습니다. 당신은 아마 (내가 전혀 상황을 모르고 있지만)이 여기에 일을해야한다 :

$insert_passenger = "INSERT INTO `passenger_journey` VALUES (null,'" . mysql_real_escape_string($_GET['user_id']) . "')"; 

사이드 참고 :뿐만 아니라 mysql* 당신 문제를 일으킬 것되지 않습니다 사실, 그러나 이것은 스크립트입니다 SQL 인젝션과 XSS에 취약하다.

문서/대한 추가 정보 :

+0

고마워요 조언, 행은 내가 고유 한 목적으로 사용하지 않기 때문에 자동 증가 일 필요는 없다. –

+0

멋진데, 폼 마크 업을 통해 전달해야합니다. –

+0

그냥 제출 버튼 이름이었습니다. 맞았습니다! 도와 주셔서 감사합니다. –

관련 문제