0

3列しかないMySQLテーブルがあります。以下のように sub_id 番号でソートされた列のデータ:

sub_id | field_name | field_val
1 ------- carname -------ford
1 ------- driver ------- michael
1 ------- licence -------123
2 ------- carname -------bmw
2 ------- driver ------- robert
2 ------- licence -------321

テーブルを操作するために、私は以下のコードを持っています:

   $link = mysql_connect("xxx", "xxx", "xxx");
   mysql_select_db("xxx");
   mysql_query ('SET NAMES utf8');
   mysql_query ('SET CHARACTER SET utf8');
   $query = "select sub_id,field_name,field_val from wp_cformsdata WHERE sub_id IN ($ID)";
   $result = mysql_query($query);

それは私に目的のIDによる行のセットを与えました。このような乱雑なテーブルを持つのはかなり不快ですが、プラグインによって自動的に作成されます。質問は、取得した各行を異なる変数に割り当てるにはどうすればよいですか? この変数を使用して html ドキュメントを埋めたいと思います。下手な英語でごめんなさい:)

4

4 に答える 4

0

別の変数は必要ありません。PHPコードで使用することをお勧めしswitchます。

$link = mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("xxx");
mysql_query ('SET NAMES utf8');
mysql_query ('SET CHARACTER SET utf8');
$query = "select sub_id,field_name,field_val from wp_cformsdata WHERE sub_id IN ($ID)";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
    switch($row['field_name'])
    {
        case 'carname':
            // do something
            break;
        case 'driver':
            // do something else
            break;
        // add more "case" here
        default:
            // do the default action here
    }
}

また、このページを読んで、非推奨のmysql_*関数の代わりに何を使用するかを選択するのに役立ててください。

于 2012-09-04T17:50:07.270 に答える
0

私が考える限り、ドキュメントの行を読み取るにはループのような単純なものが必要です。

<?php
$link = mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("xxx");
mysql_query ('SET NAMES utf8');
mysql_query ('SET CHARACTER SET utf8');
$query = "select sub_id,field_name,field_val from wp_cformsdata WHERE sub_id IN ($ID)";
$result = mysql_query($query);
while($rows=mysql_fetch_array($result)){
?>
<div> <?php echo $rows['sub_id'];?> </div>
<div> <?php echo $rows['field_name'];?> </div>
<div> <?php echo $rows['field_val'];?> </div>
<?
}
mysql_close();
?>

これが役立つことを願っています。mysql_fetch_assoc() も使用できます。

于 2012-09-04T18:03:50.437 に答える
0

すべての結果を反復処理し、フィールド名と sub_id を予想されるものと手動で比較し、その結果を条件変数に代入する必要があります。

個人的には、それを反復して sub_id => フィールドの配列を作成するので、次のようになります

while($row = mysql_row($result))
    $users[$row['sub_id']][$row['field_name']] = $row['field_value']

の正確な構文を思い出すことができないため、構文が間違ってmysql_*いますが、アイデアはわかります。

于 2012-09-04T17:46:00.407 に答える
0

「代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。」ドキュメントから、使用しているメソッドは非推奨です。

各項目を取得する方法は次のとおりです。結果セットであるため、ループする必要があります。

while ($row = mysql_fetch_assoc($result)) {
    $car_name = $row['carname'];
    $driver =  $row['driver'];
}

等々..

于 2012-09-04T17:46:11.000 に答える