2013-07-03 4 views
0

사용자가 내 URL에 입력하는 ID에 따라 데이터베이스에서 정보를 검색하려고합니다.SELECT * FROM 표 ID

예 : USER A가 www.exampleurl.com/index.php?id=1에 방문한 경우 ID가 1 인 사용자의 정보가 에코됩니다. ID가 2, 3 등일 경우 동일한 내용입니다. 사용자는 submit.php라는 다른 파일에 양식을 통해 정보를 입력합니다. 내 SELECT 요청이 잘못된 경우에

<?php 
    $id = $_GET['id']; 

     //Variables for connecting to your database. 
     $hostname = ""; 
     $username = ""; 
     $dbname = ""; 
     $password = ""; 
     $usertable = ""; 

     //Connecting to your database 
     $con = mysql_connect($hostname, $username, $password) OR DIE ("Unable to 
     connect to database! Please try again later."); 
     mysql_select_db($dbname, $con); 

     $query = "SELECT * FROM $usertable WHERE id = $id LIMIT 1"; 
     $result = mysql_query($query, $con); 

    echo "Hello, " . $result['name']; 

?> 

어떤 아이디어 : 여기

는 ID에 따라 데이터를 검색하려면 코드는?

편집

는 다음 테이블에 모두 데이터를 보여주는 내 코드입니다. 이것은 잘 작동합니다.

<?php 
     //Variables for connecting to your database. 
     $hostname = ""; 
     $username = ""; 
     $dbname = ""; 
     $password = "!"; 
     $usertable = ""; 

     //Connecting to your database 
     $con = mysql_connect($hostname, $username, $password) OR DIE ("Unable to 
     connect to database! Please try again later."); 
     mysql_select_db($dbname, $con); 

     //Fetching from your database table. 
     $query = "SELECT * FROM $usertable"; 
     $result = mysql_query($query, $con); 

     echo "<table border=1> 
     <tr> 
     <th> ID </th> 
     <th> Name </th> 
     <th> Age </th> 

     </tr>"; 

     while($record = mysql_fetch_array($result)) { 
      echo "<tr>"; 
      echo "<td>" . $record['id'] . "</td>"; 
      echo "<td>" . $record['name'] . "</td>"; 
      echo "<td>" . $record['age'] . "</td>"; 
      echo "</tr>"; 
     } 

     echo "</table>"; 
?> 
+3

테스트 또는 예제 pr에 대한 것 같습니다. oject 그래서 나는 보안에 하프 않을거야,하지만 당신이 발생하는 오류는 무엇입니까? – Scotch

+0

무엇이 잘못 되었나요? – meda

+0

불행히도 ID를 기반으로 데이터를 검색하지 못했습니다. 미켈에게 고마워 해. – qweqweqwe

답변

4

→이 시도 :

$query = "SELECT * FROM $usertable WHERE id = $id LIMIT 1"; 
$result = mysql_query($query, $con); 
if(!result) 
    echo mysql_error(); 

을 또한 결과를 검색해야

당신은 사용을 고려해야합니다

그것이 더 안전하고 mor 인 PHP PDO 전자 객체 지향 접근 방식 :

$usertable = ""; 
$database = new PDO('mysql:host=localhost;dbname=DB_NAME', 'DB_USER_NAME', 'DB_USER_PASS'); 

$statement = $database->prepare('SELECT * FROM $usertable'); 
$statement->execute(); 

$count = $statement->rowCount(); 

if($count > 0) { 

    $R = $statement->fetchAll(PDO::FETCH_ASSOC); 

    for($x = 0; $x < count($R); $x++) { 

     echo "<tr>"; 
     echo "<td>" . $R[ $x ]['id'] . "</td>"; 
     echo "<td>" . $R[ $x ]['name'] . "</td>"; 
     echo "<td>" . $R[ $x ]['age'] . "</td>"; 
     echo "</tr>"; 

    } 

} 
else { echo "Error!"; } 
+0

PDO가 올바른 방법입니다. –

3

결과를 검색하려면 mysql_fetch_assoc function을 사용해야합니다.

$result = mysql_fetch_assoc(mysql_query($query, $con));  
echo "Hello, " . $result['name']; 
+0

대단히 고마워요. – qweqweqwe

+0

문제가 해결되면 정답을 표시 –

1

당신은 당신의 mysql_querys 오류 검사해야한다 :

$array = mysql_fetch_assoc($result); 
0

내가 $_GET['id']가 설정되어있는 경우

  1. 확인과 같은 몇 가지 보안 기능을 고려하고있는 경우 int

  2. MySQL은 mysql_escape_string() 기능을 탈출 적용됩니다