2014-03-02 4 views
-2

좋아요, 그래서 게임의 첫 10 레벨 캐릭터를 페이지에 표시하려고합니다. 예 :while 루프에 에코가 있습니까?

Rank Name Level 
    1 Greg  10 
    2 Alex  8 

나는 상위 10 개 문자를 표시하는 동안 루프를하고 있어요 그러나 나는 내가 만 10 개 계급을 표시 할 "순위 이름 레벨"을 표시 유지하려면,하지만하지 않습니다 그것은 "계급 이름 레벨"을 계속 반복합니다. 에코 안에 테이블을 표시하고 있지만 2 개의 에코를 첨부 할 수 없으므로 테이블이 연결되지 않습니다. 나는 10 개의 레코드에 대해서만 while 루프를하고 싶지만 여전히 내 테이블을 완전히 첨부 할 수 있어야합니다.

여기 내 코드입니다 :

<?php 
Include 'fart.php';   
$rank = mysql_query('SELECT Name,Level FROM characters WHERE level>10' 
.' ORDER by Level desc LIMIT '.$limit.';'); 
$i=1; 
while ($row = mysql_fetch_array($rank)) { 
    echo ' 
    <table> 
    <tr> 
    <td>Rank</td> 
    <td>Name</td> 
    <td>Level</td> 
    </tr> 
    <tr> 
    <td>'.$i.'</td> 
    <td>'.$row['Name'].'</td> 
    <td>'.$row['Level'].'</td> 
    </tr> 
    </table>'; 
    $i++; 
} 
?> 

그것은 설명하기가 정말 어렵다, 그래서 당신이 이해할 수 있기를 바랍니다. 어떤 도움을 주셔서 감사합니다!

+0

아래 유권자가 남아 있지했기 때문에 내가이 그렇게 일어날 수 있습니다 이유를 배울 수 있습니다 생각합니다 그들의 결정에 관한 발언 다른 질문을 할 때 적용하십시오. 여러분의 질문은 당면 문제를 완전히 표현하지 못하고 코드에 대한 설명을 제공하지만 예상 결과 출력과 예상치 못한 이유를 알려주지 않습니다. 이것은 단지 나의 추측과 두 센트입니다. 문제를 명확하게 설명하고, 문제를 생성하는 데 필요한 코드를 제공하고, 예상 결과를 설명해야합니다. 당신이 그것을 어떻게 풀려고했는지에 대한 정보를 포함한다면 보너스. –

답변

0

그냥 루프 전에 테이블 헤더를 인쇄 :

echo '<table> 
     <tr> 
     <td>Rank</td> 
     <td>Name</td> 
     <td>Level</td> 
     </tr>'; 
while ($row = mysql_fetch_array($rank)) { 
    echo '<tr> 
     <td>'.$i.'</td> 
     <td>'.$row['Name'].'</td> 
     <td>'.$row['Level'].'</td> 
     </tr>'; 
    $i++; 

} 
echo '</table>'; 
+0

시도해 보았습니다.하지만 모두 연결 되길 원합니다. 동일한 너비 등. 나는 연결되기를 원합니다. 일단 내가 위쪽으로 너비를 설정하면, 다른 사람이 그것을 상속 받게됩니다,하지만 전에 넣어, 그때는 그것을 실 거예요. – user3362394

+0

다시 시도하십시오! –

+2

@ user3362394이 시점에서 PHP보다 HTML에 대해 더 많이 배워야 할 것 같습니다. –

1

는 단순히 while 루프에서 테이블 헤더를 넣어 :

$table = '<table> 
      <tr> 
      <th>Rank</th> 
      <th>Name</th> 
      <th>Level</th> 
      </tr>'; 
while ($row = mysql_fetch_array($rank)) { 
$table .= '<tr> 
      <td>'.$i.'</td> 
      <td>'.$row['Name'].'</td> 
      <td>'.$row['Level'].'</td> 
      </tr>'; 
$i++; 
} 
$table .= '</table>'; 
echo $table; 
0

세 가지를 :

1) 당신이 대답하기 질문이 있으면 while 루프에서 전체 표를 작성하지 마세요.

<?php 
// fetch stuff... 
echo '<table><tr><th>Rank</th><th>Name</th><th>Level</th></tr>'; 
while ($row = mysql_fetch_array($rank)) { 
    // Print row for player 
} 
// close table 
echo '</table>' 

2) $limit이 어디서 왔는지는 모르겠지만 그 쿼리는 잠재적 인 SQL 주입을 악취로 삼습니다. 대신 PDO 또는 Prepared Statements를 사용하십시오.

3) PDO가 아닌 mysql 함수를 사용하려면 mysqli을 사용하고 mysql_* 시리즈는 더 이상 지원되지 않는 IIRC입니다. 이 코드 대신

0

사용 :

<?php 
    Include 'fart.php';   
    $rank = mysql_query('SELECT Name,Level FROM characters WHERE level>10' 
    .' ORDER by Level desc LIMIT '.$limit.';'); 
    $i=1; 
    echo ' 
    <table> 
    <tr> 
    <td>Rank</td> 
    <td>Name</td> 
    <td>Level</td> 
    </tr>'; 
    while ($row = mysql_fetch_array($rank)) { 
    echo ' 
    <tr> 
    <td>'.$i.'</td> 
    <td>'.$row['Name'].'</td> 
    <td>'.$row['Level'].'</td> 
    </tr>; 
    $i++; 
    } 
    echo '</table>'; 
    ?> 

헤더는 루프 내부를 유지했기 때문에 계속오고있다. 당신이 그것을 어떻게 당신의 방법 중 하나를 원한다면, 다음 코드 아래 시도 :

<?php 
    Include 'fart.php';   
    $rank = mysql_query('SELECT Name,Level FROM characters WHERE level>10' 
    .' ORDER by Level desc LIMIT '.$limit.';'); 
    $i=1; 
    while ($row = mysql_fetch_array($rank)) { 
    if($i==1) 
    { 
    echo ' 
    <table> 
    <tr> 
    <td>Rank</td> 
    <td>Name</td> 
    <td>Level</td> 
    </tr>'; 
    } 
    echo ' 
    <tr> 
    <td>'.$i.'</td> 
    <td>'.$row['Name'].'</td> 
    <td>'.$row['Level'].'</td> 
    </tr> 
    </table>'; 
    $i++; 
    } 
    ?> 
0
   <?php 
       Include 'fart.php'; 

       $rank = mysql_query('SELECT Name,Level FROM characters WHERE level>10' 
       .' ORDER by Level desc LIMIT '.$limit.';'); 


       echo "<table border='1'>"; 
       echo "<tr> <th>RANK</th> <th>NAME</th> <th>LEVEL</th></tr>"; 
       $i=1; 
       // keeps getting the next row until there are no more to get 
       while($row = mysql_fetch_array($rank)) { 
        // Print out the contents of each row into a table 
        echo "<tr><td>"; 
        echo $i; 
        echo "</td><td>"; 
        echo $row['Name']; 
        echo "</td><td>"; 
        echo $row['Level']; 
        echo "</td></tr>"; 
        $i++; 
       } 

       echo "</table>"; 
       ?> 
관련 문제