2013-05-15 7 views
0

내가 비슷한 질문에 대한 답이 알고 있지만 내 경우에 나는이 오류를 얻을 논리 값을 사용하지 않는 자원, 널 (안 부울)에 제공 될 것으로 예상경고 : mysql_num_rows도는() 매개 변수 1

경고 : mysql_num_rows도()는 (19) 여기

25

<?php 
session_start(); 
include("header.php"); 
if(!isset($_SESSION['uid'])){ 
    echo "You must be logged in to view this page!"; 
}else{ 
    if(isset($_POST['gold'])) { 
    $energy = protect($_POST['energy']); 
    $id = protect($_POST['id']); 
    $user_check = mysql_query("SELECT * FROM `stats` WHERE `id`='".$id."'") or  die(mysql_error()); 
if(mysql_num_rows($user_check) ==0) { 
    output("There is no user with that ID!"); 
}elseif($energy < 1 || $energy > 10) { 
    output("You must attack with 1 - 10 energy!"); 
}elseif($energy > $stats['energy']){ 
    output("You do not have enough energy!"); 
}elseif($id == $_SESSION['uid']) { 
    output("You can not attack yourself!"); 
}elseif(mysql_num_rows($attacks_check) > 9) { 
    output("This person has been already attacked the maximum of 10 times in the last 24 hours!"); 
}else{ 
    $enemy_stats = mysql_fetch_assoc($user_check); 
    $attack_effect = $energy * 0.1 * $stats['attack']; 
    $defence_effect = $enemy_stats['defence']; 
에 라인 1 battle.php은 파라미터 1 널 라인 /home3/arm103/public_html/battle.php 주어진 자원이 될 것으로 예상

누군가가 나에게 문제 감사를 표시 할 수 있다면 좋을 것입니다.

+0

로 복제 가능 [mysql \ _fetch \ _array()는 매개 변수 1이 리소스가 될 것으로 예상하고 select에서 부울 값 지정] (http://stackoverflow.com/questions/2973202/mysql-fetch)으로 전환하십시오. -array-expects-parameter-1-to-be-resource-boolean-given-select) –

+0

정확히'$ attacks_check '는 어디서 오는 것입니까? :) –

답변

2

$attacks_check이 정의되지 않았으므로 null입니다. mysql_num_rows()의 매개 변수로 전달하기 전에 리소스로 초기화해야합니다. 보조 노트로

}elseif(mysql_num_rows($attacks_check) > 9) { 

mysql_* 기능을 mysqli 또는 PDO에 찬성되지 않습니다 점에 유의하시기 바랍니다. 보안 및 안정성을 향상시키기 위해 코드를 업데이트하십시오.

+0

죄송합니다.이 게시물은 지금 삭제할 수 있습니다. 내 케이스에서 설명하기 위해 조지 커민스에게 감사드립니다. – Aidan

2

더 이상 mysql_ * 함수에 대한 지원이 없으며 공식적으로 더 이상 사용되지 않으며 더 이상 유지 관리되지 않으며 앞으로 제거 될 예정입니다. 나중에 PDO 나 MySQLi로 코드를 업데이트하여 프로젝트의 기능을 보장해야합니다.

정의되지 않은 변수를 참조하고 있습니다. $attacks_check이 지정되지 않았으므로 null입니다.

0

당신은 $attack_check을 사용하지만 변수가 당신이 mysql_* 기능 때문에 사용되지 않습니다 난에 조언을 것이라고 기억하고 싶은 그런

비어 있으므로 오류의 원인이

}elseif(mysql_num_rows($attacks_check) > 9) { 

을 definied되지 않았습니다 mysqli 또는 PDO

관련 문제