2011-04-28 4 views
1

나는 이미 누군가가 이미 투표했는지를 알기 위해 IPaddress가 이미 테이블에 있는지 확인하고 확인하는 간단한 빠른 설문 조사와 쿼리를 얻었습니다. 나는 이미 테이블을 만들고 작동합니다.PHP가 테이블에 저장되어있는 것과 ipaddress를 비교하는 경우

제 질문은 if else 문으로 작동하지 않습니다. 나는 다른 사전에 설문 조사

$ip=$_SERVER['REMOTE_ADDR']; 

include("../db/config.php"); 
include("../db/opendb.php"); 

$result = mysql_query("SELECT * FROM Poll WHERE ip='$ip'"); 

if ($result==$ip) { 
    echo "Thank you for voting."; 
} else { 
    echo "<form action=logvote.php method=post>" . 
     "<input type=radio name=ans value=ans1> Answer1<br>" . 
     "<input type=radio name=ans value=ans2> Answer2<br>" . 
     "<input type=radio name=ans value=ans3> Answer3<br>" . 
     "<input type=radio name=ans value=ans4> Answer4<br>" . 
     "<input type=submit value=Submit>"; 

    echo "<input type=hidden name=ip value="; 
    echo "$ip>"; 

    echo "</form>"; 

include("../db/closedb.php"); 

} 

감사를 표시이

IP 주소 테이블 쇼 문자열 에있는 경우 만들려고 노력하고 있습니다.

답변

0

코드는해야한다 : 또한, 당신은 간단한 계산으로 필요한 정보를 얻을 수 있습니다.

또한 SELECT 문에서 ip를 사용하면 코드 속도가 빨라집니다.

4

먼저 행을 가져 오는 것을 잊어 버렸습니다.()

$query = mysql_query("SELECT ip FROM Poll WHERE ip='$ip'"); 
$info = mysql_fetch_object($query); 
$result = $info->ip; 

if($result == $ip) 

는 mysql_query를 참조하지 문자열을 반환

$result = mysql_query("SELECT COUNT(*) as 'count' FROM Poll WHERE ip='$ip'"); 
$row = mysql_fetch_assoc($result); 

if ($row['count']) { 
    // show string 
} else { 
    // show poll 
} 
+0

이는 mysql_query가 결과 핸들이 아닌 필드 (들)을 선택한를 반환하여

그래서 당신은 확인할 수 있습니다. –

0

mysql_query는 데이터를 직접 반환하지 않고 결과를 참조합니다.

당신과 함께 쿼리에 대해 발견 된 행의 수를 얻을 수 있습니다 :

$ NUM = mysql_numrows ($ 결과); 즉

$result = mysql_query("SELECT ip FROM Poll WHERE ip='$ip'"); 
if (mysql_numrows($result)) { 
    // dostuff 
} else { 
    // do other stuff 
} 

// you can retrieve the ip like so: 
$data = mysql_fetch_assoc($result); 
$ip = $data['ip']; 
관련 문제