0
while 루프를 사용하여 일부 축소판을 텍스트로 표시하려고하지만 첫 번째 문자 인 <tr>
만 잘 작동하고 두 번째 문자는 표시되지 않습니다. 오류가 없으므로 내가 잘못한 것을 알지 못합니다.이중 루프가 작동하지 않습니다. 이게 어떻게 작동합니까?
<?php
require_once("inc/config.inc.php");
$sql = "SELECT * FROM games ORDER BY RAND() LIMIT 20";
$result = $mysqli->query($sql);
$row = $result->fetch_assoc();
$counter = 0;
$max = 5;
$counter2 = 0;
$max2 = 5;
?>
<table style="table-layout:fixed;width:100%;text-align:center;" align="center" valign="center">
<?php
echo "<tr>";
while (($row = $result->fetch_assoc()) and ($counter < $max)) {echo "<td><a class='nogame' href='play.php?g=". $row['pid'] ."'><img src='". $tpath . $row['thumb'] ."'><br>". $row['name'] ."</a></td>";$counter++;}
echo "</tr>";
echo "<tr>";
while (($row = $result->fetch_assoc()) and ($counter2 < $max2)) {echo "<td><a class='nogame' href='play.php?g=". $row['pid'] ."'><img src='". $tpath . $row['thumb'] ."'><br>". $row['name'] ."</a></td>";$counter2++;}
echo "</tr>";
?>
</table>
당신이 나를 도울 수 있기를 바랍니다. 그리고 미안, 만약 내가 바보 같은 실수를했다면. PHP를 처음 사용합니다. 또한 Google을 시도했지만 도움이되지 않았습니다.
인사말
두 쿼리간에 결과 집합을 다시 설정해야합니다. 첫 번째 while 루프가 끝날 때 결과 집합에는 반환 할 레코드가 더 이상 없으므로 루프가 종료됩니다. 두 번째 루프가 시작되면 레코드가 없으므로 즉시 종료됩니다. 나는 루프 사이의'$ row-> data_seek (0)'이 당신이 원하는 것을 할 것이라고 생각한다. – andrewsi
첫 번째 루프는 결과 행의 ** ALL **을 가져옵니다. 그런 다음 두 번째 루프에는 아무 것도 작업 할 필요가 없습니다. –
아 와우! 너희 둘 다 고마워. '$ result-> data_seek (0);'이 문제를 해결했습니다. 고맙습니다. :) – user3434770