私はVBから来ました。アクセス; 最近 WAMP に導入された SQL Server のバックグラウンド。ここ数週間解決できていない問題があります。Web 上のすべてのフォーラム (ここを含む) にアクセスしても成功しなかったと思います。
MySQL レコードセットから 2 つの配列を作成しました。1 つはサイトのカート用で、もう 1 つはサイト部門 (カタログ) の 1 つです。以下の埋められた配列の手動解釈を参照してください。
$catalog[] = array(
array('ProdID'=>2,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
array('ProdID'=>6,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
array('ProdID'=>7,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
array('ProdID'=>8,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
array('ProdID'=>9,'Name'=>'Alpha','DepID' =>2,'InBasket'=>'0'),
);
$cart[] = array(
array('Name'=>'Alpha2','Loc'=>'e_vol1','BasketID'=>'81','ProdID'=>'2','Quant'=>'1'),
array('Name'=>'Beta4','Loc'=>'e_vol2','BasketID'=>'81','ProdID'=>'4','Quant'=>'1'),
array('Name'=>'Alpha8','Loc'=>'e_vol3','BasketID'=>'81','ProdID'=>'8','Quant'=>'1'),
array('Name'=>'Gamma21','Loc'=>'e_vol4','BasketID'=>'81','ProdID'=>'21','Quant'=>'1'),
);
私がする必要があるのは、新しいカタログが選択されるたびにカタログ配列をループし、カート内の各行の ProdID をカタログの各行の ProdID と比較し、一致が見つかったときにカタログを更新したいことですその行の「InBasket」の値が「1」になるだけで、アイテムがすでに顧客のカートに入っていることを示し、画面に表示できます (顧客はいずれかのアイテムを 1 つだけ購入できます)。
カートには最大 10 個の製品が含まれる 5 つの異なる部門 (カタログ) があり、たとえば 4 つのアイテムが含まれます (運が良ければ)。
いくつかのループを試しましたが、うまくいかないようです。
for ($x = 0; $x < count($catalog); $x++)
{
for ($y = 0; $y < count($cart); $y++)
{
If ($catalog[$x]['ProductID'] == $cart[$y]['ProductID'] )
{
$cart[$x]['InBasket'] = 1;
}
}
}
私の配列は正しいと思いますが、ループは関係なく「InBasket」を更新しているようです。
どんなアイデアでも大歓迎です。