2010-02-18 4 views
0

여기에 내 코드가 있는데, 그 중 일부는 완벽하게 작동하지만 다른 것은 아닙니다.
PHP 내부의 루프 문과 관련된 문제

<?php 
$query = "Select * from Query ORDER BY time DESC"; 
$result = mysql_query($query); 
while ($row = mysql_fetch_assoc($result)) { 
?> 

<span class="hotspot" onmouseover="tooltip.show('<center><b><?php echo $row['name'] ?></b></center>');" onmouseout="tooltip.hide();"> 
<?php 
echo "<img src='/" . $row['name'] . ".gif'> "; 
} 
?> 

이제 제 $row['name'] 루프에 잘 작동하지만, 첫 번째는 제 rwos 모든 결과에 대한 결과를 사용하고, 100 개 행과 같이 존재한다.
어떤 해결책이 있습니까?

답변

0

이 문제점을 발견했습니다. 끝 부분은 </span>입니다.

+0

그래 ... 나는 당신을 위해 그것을 약간 정리하기 위해 그것을 다시 쓰고 있었다. 그리고 그것은 나의 질문 중 하나였다. "이 부분이 어디서 끝나나요?" 출력되는'$ row [ 'name']'의 값은 변경되지 않지만 그렇게 표시 될 수 있습니다. 실제 HTML을보고 무슨 일이 일어나는지 확인하십시오. Firefox 용 W3 Validator 또는 HTML Validator 확장 기능을 사용할 수도 있습니다. – JAL

0

$ row [ 'name']을 변수에 할당하고 변수를 사용하여 HTML을 작성 했습니까?

+0

시도했는데 작동하지 않았다. –

0

나는이 문제에 있는지 확실하지 않습니다하지만 당신은 에코 코드의 첫 번째 부분에 세미콜론을 넣어 할 수 있습니다 : 한 줄의 코드를 추가하려고 errors-- 내가 어떤 명백한을 발견하지

<?php echo $row['name']; ?> 
+0

시도가 작동하지 않았다. –

+0

물론 다른 곳에서는 세미콜론을 사용하지 않는 것이 치명적인 오류이지만 PHP를 닫기 전에 마지막 명령을 생략해도 PHP는 상관 없습니다 . – JAL

0

그래서 루프의 앞부분에서 $ row [ 'name']을 에코하여, 무슨 일이 일어나는지 더 잘 이해할 수 있습니다. 아래 참조 :

<?php 
$query = "Select * from Query ORDER BY time DESC"; 
$result = mysql_query($query); 
while ($row = mysql_fetch_assoc($result)) { 
echo $row['name']."<br>";  // <-------- ADD THIS LINE 
?> 

<span class="hotspot" onmouseover="tooltip.show('<center><b><?php echo $row['name'] ?></b></center>');" onmouseout="tooltip.hide();"> 
<?php 
echo "<img src='/" . $row['name'] . ".gif'> "; 
} 
?>