2014-04-16 3 views
-1

나는 간단한 예를 가지고 무엇이 잘못 됐는지 모르겠다.PHP는 형태로 MySQL 데이터베이스에서 데이터를 검색

<form action="selectDB.php" method="post"> 
<input type="text" name="studentID" /> 
<input type="submit" name="send" /> 
</form> 

나는이 코드를 사용하여 PHP 페이지에 값을 전달 해요 : :

<?php 
if(isset($_POST['send'])){ 
    $var = $_POST[ 'studentID' ]; 
    //now you can use the var for an query to your database 
    //please note: this very basic, without any security of injection 
    $res = mysql_query('SELECT `*` FROM `student` WHERE `idStudent` LIKE \'%'.$var.'%\' '); 
    if(mysql_num_rows($res)){ 
     $row = mysql_fetch_assoc($res); //get one (first) result 
    } 
} 

?> 

<script> location.href='editRegistration.php';</script> 
폼 나는 내 DB

이 데이터를 보내고있다있는 간단한 양식을 가지고있다

그 다음에 위의 스크립트를 사용하여 3 번째 페이지를 열어서 쿼리 결과를 해당 폼에로드하려고합니다. 문제는 내가 빈 입력 필드를 얻고 있으며 db에서 데이터로 설정되지 않는다는 것입니다. 어떻게 문제를 해결할 수 있습니까? 3 페이지 코드 :

<form class="form-horizontal" id="registration" method="post" action="selectDB.php" name="send"> 
    <input type="text" name="studentID" align= "right" class="textbox" value="<?php isset($row[ '0' ]) ? $row[ 'idStudent' ] : '' ?>" /> <span id="errorID"></span> <br/> 
</form> 
+0

고마워,하지만 문제가 해결되지 않는다 – user2674835

+0

당신은 자바 스크립트로 리디렉션을 해. 이 세 번째 페이지에는 데이터가 없습니다. php $ row. –

+1

[SQL injection attacks] (http://bobby-tables.com)에 취약하며 쿼리가 제대로 수행되었다고 가정합니다. 'var_dump ($ _ POST)'와 같은 디버깅을 수행하여 양식이 올바르게 제출되는지 확인 했습니까? boolean false에 대해 mysql_query()의 반환 값을 확인 했습니까? 또한 코드로 작성된 코드는 데이터 행을 가져오고 가져온 데이터를 출력하지 않고 단순히 자바 스크립트 리디렉션 만 출력합니다. –

답변

1

문제는 여기

$res = mysql_query('SELECT `*` FROM `student` WHERE `idStudent` LIKE \'%'.$var.'%\' '); 

입니다 그것이 있어야 :

$res = mysql_query("SELECT * FROM `student` WHERE `idStudent` = ".$var); 

내가 그것을 작동합니다 지금 생각합니다.

서버를 쿼리하는 올바른 방법은 아니지만 초보자는 유용 할 수 있습니다.

관련 문제