0

こんにちは、私はmysqlデータベースに同様のコンテンツを持つ2つのフィールドがあります:

フィールド1a>b>c
フィールド21>2>3

私はそれらを別の列に並べて、爆発させたいと思います。

例:

-----------------
|Field 1|Field 2|      
|----------------
|a      |1      |
|b      |2      |
|c      |3      |

これが機能するはずのコードのスニペットです。

$result = mysql_query($insert_cat);
while ($row = mysql_fetch_assoc($result))
{
    //assegno variabili per l'array associativo
    $idcat = $row["id_categorie"];
    $descat = $row["categoria"];

    //inizio a ciclare all'interno degli array per ricavare le categorie
    $ar_id=explode('>',$idcat);
    $ar_des=explode('>',$descat);

    foreach($ar_id as $value_id)
    {

        foreach($ar_des as $value_des)
        {

        }

        echo $value_id.'|'.$value_des."\n";
    }
}

問題は次のとおりです。テーブルに挿入する必要があるものを(テスト用に)エコーするにはどうすればよいですか?
私は試しましたが、運がありませんでした。

4

2 に答える 2

1

mysql_ *関数の使用は強く推奨されておらず、長期間非推奨になっています。コードはSQLインジェクションに対して脆弱であり、MySqlにPHP APIを使用することをお勧めします:mysqliまたはPDO。

詳細については、このリンクの赤いボックスを参照してください

APIを選択するためのヘルプ

于 2012-12-13T16:25:49.197 に答える
1

array_combine関数を使用してみましたか?この件に関するphpドキュメントを参照してください。

これにより、2つの配列がマージされ、最初の配列が2番目の配列のキーになります。foreachその結果、ループを次のようなものに置き換えることができます

$fullArray = array_combine($ar_id, $ar_des);
foreach($fullArray as $key_id => $val_des)
{
    echo $key_id . " | " . $val_des;
}
于 2012-12-13T15:24:26.963 に答える