0

$color_combo値があります。これは特定のアイテムの$colorsの配列に分解されます(配列内の3つの値)。$ colorsの値は3文字の文字列コード(FGR)であり、そのコードを「フォレストグリーン」の色に一致させるルックアップテーブルがデータベースにあります...ただし、アイテムごとに3色の場合、クエリを3回実行する必要があります配列:

 $color_combo = 'FGR-BLU-YLW'
 $colors = explode('-', $color_combo);
 $q = $mysqli -> prepare("SELECT color_name from color_table as c WHERE color_code=?");
 $q->bind_param("s", $colors[]);

だから私はしようとしています:

 while (mysqli_multi_query($link, $q)) {
 $result = mysqli_store_result($link))
 return $result;
 }

このケースシナリオに関するドキュメントを見つけることができませんでした。他の関数を使用している可能性があります...:

 $value = $result->fetch_array(); ... or maybe next_result() or more_result()

私の中心的な質問は、mysqli拡張機能のベストプラクティスと、値の配列に対してクエリを実行する方法についてです。

4

1 に答える 1

1

クエリを使用してコードを次のように変更する必要があります。

$color_combo = 'FGR-BLU-YLW'
$colors = explode('-', $color_combo);
$q = $mysqli ->prepare("
    SELECT 
        color_name 
    FROM
        color_table as c 
    WHERE 
        color_code IN (?, ?, ?)
");

$q->bind_param("sss", $colors[0], $colors[1], $colors[2]);

ステートメントを実行すると、結果には、色の名前を含むデータベースからの 3 つの行が含まれます。この結果をループして、色の名前を取得できます。このコードは、$colors 配列に常に 3 つのカラー コードがあることを前提としています。

于 2011-10-24T12:31:14.680 に答える