2013-02-18 5 views
0

mysql 쿼리 및 PHP를 사용하여 비교 테이블을 작성하려고합니다.반복 열에서 결과를 표시하는 mysql 쿼리

나는 결과를 싶습니다

이처럼 열에 표시되는 :

<table border="1" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td width="151" scope="col">product</td> 
    <td width="89" scope="col">product1</td> 
    <td width="78" scope="col">product2</td> 
    <td width="77" scope="col">product3</td> 
    </tr> 
    <tr> 
    <td>type</td> 
    <td>type2</td> 
    <td>type3</td> 
    <td>type5</td> 
    </tr> 
    <tr> 
    <td>size</td> 
    <td>size2</td> 
    <td>size1</td> 
    <td>size4</td> 
    </tr> 
    <tr> 
    <td>price</td> 
    <td>4.99</td> 
    <td>3.99</td> 
    <td>3.59</td> 
    </tr> 
</table> 

하지만 결과 만 표시하도록 표를 얻을 수 -도 아닌 행 제목 (필자는 첫 번째 열을 원하는 즉, '제품', '유형', '크기', '가격'을 표시합니다.

을 내가 가진 코드는 지금까지

<?php 
// query the database 
$result = mysql_query($query_getproducts); 

// cols we are interested in (from the SQL query) 
$cols = array(
     'product', 
    'type', 
    'size', 
    'price', 
); 

// initialize rotated result using cols 
$rotated = array(); 
foreach($cols as $col) { 
    $rotated[$col] = array(); 
} 

// fill rotated array 
while(($row = mysql_fetch_assoc($result)) !== false) { 
    foreach($cols as $col) { 
    $rotated[$col][] = $row[$col]; 

    } 
} 

// echo html 
echo "<table border=1 width=473>"; 
echo "<tr>"; 

echo "</tr>"; 
foreach($rotated as $col => $values) { 
    echo "<tr>"; 

    foreach($values as $value) { 
    echo "<td> " . htmlentities($value) . "</td>"; 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 
?> 

희망 누군가가 도움을 줄 수있다.

답변

0

이 기능은 사용되지 않습니다 * 모든 mysql_로의

echo "<table border=1 width=473>"; 
echo "  <tr> 
    <th>Product Name</th> 
    <th>Description</th> 
    <th>Product Size</th> 
    <th>Price</th> 
    </tr>"; 
foreach($rotated as $col => $values) { 
echo "<tr>"; 

foreach($values as $value) { 
    echo "<td> " . htmlentities($value) . "</td>"; 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 
+0

감사합니다. 첫 번째 열에 mysql 열 제목 이외의 것을 넣을 수 있습니다. 그래서 mysql 제목이 'productSize'라고해도 테이블에 'Size'가 표시됩니다. ?? –

+0

원하는 경우 열 이름을 수동으로 지정할 수 있습니다. –

+0

ok, 'echo $ values'를 'echo $ col;'으로 변경했습니다. 이렇게하면 cols 배열을 첫 번째 열에 넣을 수 있습니다. 그러나 나는이 값을 다른 것으로 수동으로 변경하고 싶습니다. 예를 들어, 나의 첫 번째 mysql 열 제목은 사실 'productName'입니다. 따라서 첫 번째 열에 'Product Name'을 사용하는 것이 이상적입니다. 이 변수와 다른 변수에 대해이 작업을 어떻게 수행합니까? 새로운 배열을 $ titles = array ('제품 이름', '설명', '제품 크기', '가격')으로 정의하려고했습니다. echo 스크립트에서는 "$ titles"라고 쓰지만 첫 번째 열에는 'array'라는 단어 만 씁니다. –

1

먼저, 다음과 같이하십시오. PDO 또는 Mysqli를 사용해야합니다. 당신의 열 이름과 연관 배열을 반환 mysql_fetch_assoc를 사용하는 경우는

당신은 "제품, 유형, 크기, 가격"으로 표 머리글을 표시하려면, 즉 테이블 헤더 고정하려면 그런 다음

<tr> 
<th>Product</th> 
<th>Type</th> 
<th>Size</th> 
<th>Price</th> 
</tr> 

를 사용 거기 열쇠. 해당 배열을 사용하여 루프를 사용하여 결과를 인쇄 할 수 있습니다. 예 :

관련 문제