2011-11-23 2 views
2

내 데이터베이스의 테이블을 검색하는이 작은 스크립트를 만들었지 만, 내 인생에서 누군가가 전자 메일 만 검색하면 테이블 정보를 표시하는 방법을 찾을 수없는 것처럼 보입니다. . 이메일 만 검색하고 데이터베이스에서 해당 이메일 주소에 대한 모든 정보를 표시 할 수 있기를 원합니다. 이견있는 사람?PHP 검색 MySQL 테이블

<?php 
$profile = $_POST["profile"]; 

mysql_connect ("", "", ""); 
mysql_select_db (""); 

$query = "SELECT * FROM `profile` WHERE `email`='$email' and `about`='$about' and 
`age`='$age' and `sex`='$sex' and `website`='$website'"; 


$result = mysql_query ($query); 
if ($result) { 
while($row=mysql_fetch_row($result)) 
{ 
echo $row[0],$row[1],$row[2]; 
} 
}else{ 

} 
?> 

<form action="profile.php" method="post"> 
<input type="text" name="search"><br> 
<input type="submit"> 

답변

3

숫자가 아닌 필드가 쿼리에서 작은 따옴표로 묶어야합니다 다른 쿼리를 작성합니다.

<?php 

    $search = $_POST["search"]; 
    mysql_connect("localhost", "username", "password") OR die (mysql_error()); 
    mysql_select_db ("your_db_name") or die(mysql_error()); 

    $query = "SELECT * FROM `profile` WHERE `email`='$search'"; 

    $result = mysql_query($query) or die (mysql_error()); 

    if($result) 
    {  
     while($row=mysql_fetch_row($result)) 
     {  
      echo $row[0],$row[1],$row[2]; 
     }  
    } 
    else 
    { 
     echo "No result"; 
    } 
?> 

<form action="profile.php" method="post"> 
    <input type="text" name="search"><br> 
    <input type="submit"> 
</form> 

편집 : 위의에서

당신이 하나의 text 필드가 코드-니펫을하고 submit button 그래서 한 번에 하나 개의 데이터베이스 필드에 검색 할 "search" 필드 값을 사용할 수 있습니다. 이메일을 검색하려면

다음 SQL 쿼리는 다음과 같습니다 당신이 연산자 LIKE 사용할 수 있습니다

SELECT * FROM `profile` WHERE `email`='$search' or about`='$search'"; 

:

SELECT * FROM `profile` WHERE `email`='$search'"; 

당신은 하나 개 이상의 필드에 검색 할 OR 연산자를 사용할 수 있습니다 문자열 검색

SELECT * FROM `profile` WHERE `email` LIKE '%$search%'"; 
+0

이 결과가 표시됩니까? 아니면 $ 쿼리를 얻는 가장 좋은 방법입니까? –

+0

@Pxlc - 예! 결과를 표시합니다. 내 게시물을 수정했는지 확인하십시오. – adatapost

+0

그게 틀림 없습니까? 제 최종적으로 작동하지 않습니다. [email protected] http://arnid.us/profile.php –

2

가장 간단한 방법은

$query = "SELECT * FROM profile WHERE email='$email'";