2010-04-14 4 views
2

누군가 PHP에서 PHP를 사용하는 법을 알려주거나 보여 줄 수 있습니까? MySQL 데이터베이스에 어떤 값이 있는지에 따라 이미지의 URL을 변경하려고합니다. 다음은 내가하려는 일의 예입니다. $ idx에는 이미 페이지의 URL 값이 있습니다.Php inside Php를 사용하는 방법?

<?php 
$query = "SELECT * FROM comment WHERE uname='$idx'"; 
$result = mysql_query($query); 
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
echo "<img src='' name='comm' width='75px' height='60px' id='mainimage' />"; 
} 
?> 

이미지의 원본 값을 다른 테이블에서 어떻게 만들 수 있습니까?

+0

+1이 제목입니다. –

답변

5

당신은 while 루프 안에 다른 SQL 쿼리를 할 것입니다. 나는 당신이 그것을 어떻게 넣는 지, "Php inside Php", 당신이하는 일을 꽤 많이합니다.

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    $image_query = "SELECT image_url FROM your_table"; 
    $image_result = mysql_query($image_query); 
    $image = mysql_fetch_assoc($image_result); 

    echo "<img src='" . $image['image_url'] . "' name='comm' width='75px' height='60px' id='mainimage' />"; 
} 

는 여전히 원래 쿼리에서 루프의 각 반복을 $result 변수를 사용하고 있기 때문에 쿼리 및 결과에 대한 변수 이름은, 원래 쿼리와 다른 있는지 확인합니다. 그래서 여기에 그들 앞에 "image_"를 붙였습니다.

7

단일 SQL 쿼리로 여러 테이블의 데이터를 조인 할 수 있습니다. 참조 : http://www.w3schools.com/sql/sql_join.asp

예 :

SELECT column_name(s) 
FROM table_name1 
JOIN table_name2 
ON table_name1.column_name=table_name2.column_name 
0

이미지의 원본 값을 다른 테이블에서 어떻게 만들 수 있습니까?

다른 테이블을 요청해야합니다. 하위 쿼리를 작성 (또는 조인)하거나 루프 내에서 두 번째 쿼리를 작성하여 요청할 수 있습니다.

1

임의의 추측으로 다른 테이블이 accounts이라고 가정하고 uname이 기본 키인 경우 JOIN을 사용하여 두 테이블의 데이터를 한 번에 가져올 수 있습니다. 당신은 SQL 삽입 텍스트를 탈출 할 필요가

  • : 당신은 당신이 일반적으로 훨씬 더 빨리 행

    <?php 
        $result = mysql_query(
         "SELECT comment.*, account.url AS imgurl ". 
         "FROM comment JOIN account ON comment.uname=account.uname ". 
         "WHERE comment.uname='".mysql_real_escape_string($idx)."'" 
        ); 
    ?> 
    <?php while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { ?> 
        <img src="<?php echo htmlspecialchars($row['imgurl']) ?>" alt="" class="mainimage" /> 
    <?php } ?> 
    

    주마다 별도의 쿼리를하는 것보다의 단일 쿼리에서 수행 할 작업을 들어갈 수있는 경우 쿼리 또는 심각한 보안 문제가 발생했습니다. mysql_real_escape_string을 사용하거나 매개 변수화 된 쿼리가이를 처리하도록하십시오.

  • 마찬가지로 HTML 문자열에 텍스트를 넣을 때는 htmlspecialchars이 필요하거나 다른 (덜 심각하지만 여전히 좋지 않은) 보안 문제가 있습니다.

  • 요소에 두 번 이상 동일한 id을 사용하면 안됩니다 (반복적으로 사용됨). name<img>에 있지만 실제로 사용하고자하는 이유는 거의 없습니다. img name;

  • width="75px"은 속성에서 작동하지 않습니다. px - 단위 측정 값은 HTML이 아닌 CSS입니다. 단위를 생략하거나 CSS (.mainimage { width: 75px; height: 60px; })의 규칙을 모두 한 번에 수행하도록 설정하십시오.