2014-05-12 5 views
0

그래서IF 기능이 작동하지 않습니다.

저는 Minecraft 서버를 실행하고 별도로 호스트 된 서버에 웹 사이트를 가지고 있습니다. 플레이어가 조인 할 때 데이터베이스에 값을 보내는 bukkit 플러그인을 사용합니다. 이것은 [BLOB-1B] (아래 이미지)로 저장됩니다. 이진 값은 16 진수로 변환 한 다음 그 값을 확인합니다. 부울 값으로 00 - false 또는 01 - true 일 수 있습니다. 하지만 ... 값 00은 여전히 ​​온라인 말합니다 경우 값이 무엇인지

My database

을 확인하는 내 경우 문을 사용하지만 때 나는 내 웹 서버에이 코드를 사용할 때 :

<form action="skript2.php" method="get"> 
<input type="text" name="user" /> 
<input type="submit" name="submit" value="Username" /> 
</form> 
<?php 
$uname = $_GET['user']; 
$con=mysqli_connect("#####","#####","#####","#####"); 
// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT * FROM `variables21` WHERE name='db_sdb.$uname.onlinemode'"); 
if($row = mysqli_fetch_array($result)) { 
    $val = $row['value']; 
    $str = bin2hex("$val"); 
    echo "$str"; 
    if ($str = 01) { 
    echo "<body bgcolor=\"green\">"; 
    echo "<font color=\"white\"><img src=\"https://minotar.net/helm/$uname/32\"> -- $uname is online!</font>"; 
    } 
    if ($str = 00) { 
    echo "<body bgcolor=\"red\">"; 
    echo "<font color=\"white\"><img src=\"https://minotar.net/helm/$uname/32\"> -- $uname is offline!</font>"; 
    } 
} 

mysqli_close($con); 
?> 

세부 정보가 ##### 인 곳은 암호와 같은 비공개입니다.

연결이 정상적으로 작동하며, 다른 말로는 연결할 수 없다는 오류가 반환됩니다.

그렇다면 왜 IF 기능이 작동하지 않습니까?

감사합니다. :)

+0

많은 조건에서 비교하는 대신 지정하는 것입니다. –

+1

'='은 할당이고,'=='는 비교입니다. –

+0

도움 주셔서 감사합니다 :)! 알았어요. @NiettheDarkAbsol 다른 프로그래밍 언어에 익숙해 져서 제 실수를 범했습니다 ... – nfell2009

답변

2

당신이보기에 == 연산자

if ($str == 1) { 

} 

필요 ZERO를 들어

if ($str == 1) { 
    echo "<body bgcolor=\"green\">"; 
    echo "<font color=\"white\"><img src=\"https://minotar.net/helm/$uname/32\"> -- $uname is online!</font>"; 
    } 

당신은

if ($str === 0) { 
    echo "<body bgcolor=\"red\">"; 
    echo "<font color=\"white\"><img src=\"https://minotar.net/helm/$uname/32\"> -- $uname is offline!</font>"; 
    } 
+0

나는 바보 야! 정말 고맙습니다! VB.NET을 사용하고 있습니다. = 사용 감사합니다! – nfell2009

+0

@ nfell2009, 그다지 기분이 좋지 않아 :) 해피 코딩. –

+0

VB.NET이 더 이상 존재하지 않아야하는 또 다른 이유. – SQLMason

1

단일 =가 결합되는 연산자 === 사용할 수 있습니다 값을 변수로 -

if ($str = 01) { 

} 

두 번 ==은 비교 연산자이며 '같음'이라고 생각하십시오.

if ($str == 01) { 

} 
+0

습관적으로 이들을 거꾸로 얻는 사람들은 역함수 '01 = $ str'로 표현하십시오. 당신이 그런 종류의 과제를 할 수 없기 때문에 그것은 자동적으로 실패 할 것입니다. – tadman

+0

감사! 나는 때로는 너무 어리 석다. xD – nfell2009