2014-09-26 1 views
0

그래서 기본적으로 랭킹 스크립트가 있는데 잘 작동합니다. 로그인 한 계정의 문자 만 보여줄 것입니다. 즉, accounts.id = $ userid를 의미합니다. 해당 부분을 다룹니다.MySQLi 랭킹 스크립트

내 문제는 어떻게 mysqli 쿼리를 봐야합니까? 나는 어디에 accounts.id = ". $ userid"를 넣으려고했다. 나는 $ SQL이 엉망이라고 생각하는 비 객체 에러를 얻고있다.

테이블 및 $ jobs 변수의 맨 위 누락 부분을 무시할 수 있습니다. 관련이 없습니다.

<?php 
if (isset($_GET['start'])) { 
if ($_GET['start'] >= 0 && $_GET['start'] <= 1000) { 
$start = sql_injectionproof($_GET['start']); 
} else { 
die("Input not allowed."); 
} 
} else { 
$start = 0; 
} 
$mysqli = new mysqli("XXXXXX", "XXXXX", "XXXXXXXX", "XXXXXXX"); 
$i = $start; 
$sql = $mysqli->query("SELECT characters.name , characters.job, characters.level, characters.experience, characters.fame, accounts.isloggedin FROM characters, accounts WHERE accounts.username=".$username." and characters.accountid=accounts.id and characters.ismaster = 0 and accounts.isbanned = 0 ORDER BY characters.level DESC, characters.experience DESC LIMIT ".sql_injectionproof($start).", 500"); 
while ($outcome = $sql->fetch_array()) { ?> 

<tr> 
<td class="center" style="vertical-align: middle;">#<?php echo"".++$i.""; ?></td> 
<td class="center" style="vertical-align: middle;"><img src="images/char/create.php?name=<?php echo "".$outcome['name'].""; ?>" alt="<?php echo $outcome['name']; ?>"></td> 
<td class="center" style="vertical-align: middle;"><?php echo "".$outcome['name'].""; ?></td> 
<td class="center" style="vertical-align: middle;"><?php echo "".$outcome['level'].""; ?></td> 
<td class="center" style="vertical-align: middle;"><?php echo "".$jobs[$outcome['job']].""; ?></td> 
</tr> 

<?php 
} 
if ($start >= 0 && $start <= 1000) { 
$nextstart = $start + 10; 
if ($start >= 2) { 
    $prevstart = $start - 10; 
} else { 
    $prevstart = 0; 
} 
} else if ($start > 180 && $start <= 1000) { 
$prevstart = $start - 2; 
$nextstart = 1000; 
} else { 
die("Hacks."); 
} 
?> 

답변

1

당신은 당신의 문자열 값 따옴표를 놓치고 :

WHERE accounts.username=".$username." and 

은 다음과 같아야합니다

WHERE accounts.username='".$username."' and 

또한, $username 반환하는 쿼리의 원인이되는 정의 할 수 표시되지 않습니다 결과가 없습니다.

+0

도움 주셔서 감사합니다. 항상 그 작은 것들. $ username이 위에 정의되어 있지만 그 부분을 붙여 넣지 않았습니다. 잘 작동합니다. –