3

私は製品マスターテーブルと、製品のプロパティを含む他のさまざまなテーブル、クエリを持っています:

select p.description, category.value, colour.value, wood.value, brand.value, type.value, fabric.value, model.value from product_master p, category, colour, wood, brand, type, fabric, model where p.category_code=category.category_code and p.colour_code = colour.colour_code and p.wood_code = wood.wood_code and p.brand_code = brand.brand_code and p.type_code = type.type_code and p.fabric_code = fabric.fabric_code and p.model_code = model.model_code

pgAdmin では正常に動作していますが、php では 2 列しか表示されません。AJAX 経由で結果を取得しています

私のphpコードは

<?php
// Connecting, selecting database
$dbconn = pg_connect("host=***** dbname=*** user=*** password=***")
    or die('Could not connect: ' . pg_last_error());

// Performing SQL query
$query = ' select p.description, category.value, colour.value, wood.value, brand.value, type.value, fabric.value, model.value from product_master p, category, colour, wood, brand, type, fabric, model where p.category_code=category.category_code and p.colour_code = colour.colour_code and p.wood_code = wood.wood_code and p.brand_code = brand.brand_code and p.type_code = type.type_code and p.fabric_code = fabric.fabric_code and p.model_code = model.model_code ';
$result = pg_query($query) or die('Query failed: ' . pg_last_error());



echo pg_affected_rows($result) ;

echo "\n";

echo pg_num_fields($result);


// Printing results in HTML
echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
pg_free_result($result);

// Closing connection
pg_close($dbconn);
?>
4

1 に答える 1

1

pg_fetch_array() の使い方が間違っています。2 番目のパラメーターを NULL として渡すことはできません。これは、どの行が読み取られているかを示しているためです。

これを試して:

while ($line = pg_fetch_array($result)) {
    echo "\t<tr>\n";

    foreach ($line as $col_value) 
        echo "\t\t<td>$col_value</td>\n";

    echo "\t</tr>\n";
}
于 2012-07-03T19:50:54.023 に答える