2012-06-12 1 views
1

사용자가 입력 한 학생 키로 가져갈 웹 페이지를 설정하는 데 기본적으로 문제가 있습니다. 그러면 학생 키가 다른 파일로 파싱되어 mysql 백엔드와 비교하여이 키가 이미 가지고있는 레코드를 확인합니다. 하지만 내 인생을 위해 일하게해서는 안된다. 나는 아직도 이것에 초보자 다.html 형식의 학생 키를 PHP 파일로 전달하여 데이터베이스를 검색하려고합니다.

<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("support_log", $con); 


    $result= mysql_query("SELECT student.first_name, student.surname, student.year_group, student.STKEY, student_log.issue 
     FROM `student` JOIN `student_log` 
     WHERE student.STKEY like '$_POST[stkey]'"); 

    $result2 = mysql_query($result) or die("Error: " . mysql_error()); 
    if(mysql_num_rows($result2) == 0){ 
    echo("no records found"); 
    } ELSE { 

    echo "<table border='1'> 
    <tr> 
    <th>First name</th> 
    <th>Surname</th> 
    <th>Year Group</th> 
    <th>Student Key</th> 
    <th>Issue</th> 
    </tr>"; 

    while($row = mysql_fetch_array($result2)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['First_Name'] . "</td>"; 
    echo "<td>" . $row['surname'] . "</td>"; 
    echo "<td>" . $row['year_group'] . "</td>"; 
    echo "<td>" . $row['stkey'] . "</td>"; 
    echo "<td>" . $row['issue'] . "</td>"; 
    echo "</tr>"; 
    } 
    echo "</table>"; 
    } 
    mysql_close($con); 
?> 

변경 한 후 내 어디에 문 :

WHERE student.STKEY like '$_POST[stkey]'"); 

나는 더 이상 오전 PHP에서 오류를 기기 수령하지만 지금은 아무런 결과가없는 경우 감지 내 코드의 일부 쿼리가 비어 오류를 잡 . 필자는 phpMyAdmin에서이 쿼리를 테스트했지만 결과가 뱉어 냈습니다. 코드를 보면 누군가가 어떤 해결책을 가지고 있습니까? 또한 입력 된 데이터가 올바른지 확인하기 위해 post 명령에 echo를 실행하여 구문 분석을 검사했습니다.

편집 : 경고 :로 MYSQL_ASSOC() 매개 변수 1은 C에서 주어진 자원, 부울있을 것으로 기대 : 지금 던지는 전체 result2 체크를 제거있어 줄에 \ WAMP \ www가 \ stkey_submit.php 24

답변

1

$_POST['stkey'] 대신

$_POST[stkey]의 편집하십시오 : 쿼리에서 사용하는 경우, 수행하는 것이 바람직 할 것이다 :

$stkey = mysql_real_escape_string($_POST['stkey']); 
$sql = "SELECT ....... like '$stkey'"; 
mysql_query($sql); 
+0

반환 : 구문 오류, 예기치 못한 T_ENCAPSED_AND_WHITESPACE, 기대 T_STRING 또는 T_VARIABLE 또는 T_NUM_STRING C에서을 : \ WAMP \ www가 \ stkey_submit.php 줄에 13 –

+0

그것은 '때문에 당신이 할 수 있어요 당신이하는대로 사용하지 마십시오. 내 메시지에서했던 편집을보세요. –

0
$result= mysql_query("SELECT student.first_name, student.surname, student.year_group, student.STKEY, student_log.issue 
    FROM `student` JOIN `student_log` 
    WHERE student.STKEY like " . $_POST["stkey"]); 
+0

이제 오류가 발생했습니다 : 데이터베이스에 올바른 데이터가 있어도 더 이상 코드의 일부인 쿼리가 없습니다. 그것을 채울 수있는 다른 것이 있습니까? –

+0

테이블 이름은 student이고 first_name은 컬럼 이름입니다. JOIN을 사용할 때 필요할 수도 있다고 생각했습니다. –

0

stkey를 변수에 저장하기 전에 변수에 값을 저장하는 방법은 무엇입니까?

$stkey = $_POST['stkey']; 
$result= mysql_query("SELECT student.first_name, student.surname, 
     student.year_group, student.STKEY, student_log.issue 
     FROM `student` JOIN `student_log` 
     WHERE student.STKEY LIKE '%$stkey%'"); 

MySql 데이터베이스 API 대신 MySqli 또는 PDO를 사용할 수도 있습니다. Nettuts에서이 게시물을 살펴보십시오 : 구문 분석 오류와 http://net.tutsplus.com/tutorials/php/php-database-access-are-you-doing-it-correctly/