2013-02-24 4 views
2

데이터베이스에서 4 개의 이미지를 테이블 (2 * 2)에 표시하고 싶습니다. 그러나 특수 조건도 있습니다. (4보다 작은 그림이 있으면 4 개의 이미지를 완전히 표시하는 기본 그림을 표시합니다)while 루프 디자인 테이블

while 루프에서이 작업을 관리합니다. 4 개의 이미지가 있다면 아무런 문제가 없지만 원하는대로 작동하지만 더 적은 수의 이미지가있는 경우 (기본 이미지는 총 4 개의 이미지가 완료됨을 의미 함) 작동하지 않습니다. 나는 그것을하는 방법을 이해할 수 없다.

어떤 도움이 필요합니까?

<table> 
<tr> 
<?php        
$todisplay = 4; 

$query = mysql_query("select * from Images where Country_ID=$co_id LIMIT 0,4;"); 

while ($row = mysql_fetch_array($query)) { 
$x++; 
echo "<td><img src='".$row['I1_Th'] . "'/></td>"; 
$displayed_number++; 
if ($x % 2==0) { 
echo "</tr><tr>";} 
} 

echo str_repeat("<td> 
<img src='images/png/defthumb.png'> </td>", $todisplay-$displayed_number); 
?> 
</tr></table> 

답변

1

쿼리가 반환 한 행을 반복하는 대신 4 번 반복하고 대신 행을 가져 오는 것이 어떻습니까?

<table> 
<tr> 
<?php        
$tablerows = 2; 

$query = mysql_query("select * from Images where Country_ID=$co_id LIMIT " + ($tablerows * 2) + ";"); 

for ($x = 1; $x <= ($tablerows * 2); $x++) { 
    if ($row = mysql_fetch_array($query)) { 
    echo "<td><img src='".$row['I1_Th'] . "'/></td>"; 
    } else { 
    echo "<td><img src='images/png/defthumb.png'></td>"; 
    } 
    if ($x % 2==0 && $x != $tablerows * 2) { 
    echo "</tr><tr>";} 
} 
?> 
</tr></table> 
+0

고마워요! 매력처럼 작동합니다. – user1813286

+0

변수를 사용하여 각 행에 대해 항상 두 개의 열 (예 : 위의 내 업데이트)이 있는지 확인하기 위해 행 수 (표시 할 이미지 수 제외)를 결정할 수 있습니다. – adamdunson

2

당신은 그다지 멀지 않았습니다. 동일한 것을 반복하지만 대신 기본 이미지를 사용하십시오. 또한 $displayed_number$x과 동일한 값을 갖는 것으로 보이므로 삭제했습니다.

<table> 
<tr> 
<?php        
$todisplay = 4; 

$query = mysql_query("select * from Images where Country_ID=$co_id LIMIT 0,4;"); 
$x = 0; 

while ($row = mysql_fetch_array($query)) { 
$x++; 
echo "<td><img src='".$row['I1_Th'] . "'/></td>"; 

if ($x % 2==0) { 
echo "</tr><tr>";} 
} 

while ($x < $todisplay) { 
$x++; 
echo "<td><img src='images/png/defthumb.png'/></td>"; 
if ($x % 2==0) { 
echo "</tr><tr>";} 
} 
?> 
</tr></table> 
+0

친애하는 튜더,이 코드는 2 * 2 테이블을 만들지 만 기본 사진은 아래 행에 4 번 다시 표시됩니다. – user1813286