2016-11-05 5 views
0

私のセッションでは、ユーザーが追加するさまざまなシリアル番号の表があります。対応するシリアル番号の情報を持つdbもあります。PHPセッションとSQLで文が期待通りに機能しない場合

私のコードで実行したいのは、セッションの各シリアルについて、対応するデータをデータベースから取得することです。今のところ、私は文字列をエコーし​​ます。

私はそうするつもりです。セッションの各シリアルをループする必要があります。また、同じものがdbに存在するかどうかをチェックし、そうであれば何かをエコーする必要があります。

問題は動作しますが、セッション内に複数のシリアルがある場合は、その最後のifループを1回だけ実行することです。

セッションに1,2,3および4のシリアルがあるときに、エコーが出力されます。 http://pastebin.com/BcWMZ542

ご協力いただければ幸いです。

コード:$_SESSION["cart"]から最初のforeach項目の後https://gist.github.com/anonymous/f961509aa407f270d9325ed2aa40b42d

+0

シナリオを変更する必要があります。セッションのシリアル番号を収集し、データベース内の存在を確認するためのクエリを作成します。あなたのコードでは、シリアル番号1のチェックを終了してserialnumber 2に移動すると、 '$ row'はリセットされません。 – RST

答えて

0

、データベース結果の谷ループしています。

このことは、次のループでは、これは空になります。 while($row = mysql_fetch_array($books, MYSQL_NUM))

まず、非推奨mysql_クラスを使用しないでください。

第二に、それはあなたがすべてのあなたが意志の結果、再検証する必要はありません$_SESSION["cart"]情報の上に最初のループにはるかに優れている、と

SELECT * from tblbooks WHERE id IN ('the', 'list', 'of', 'ids') ORDER BY bookTitle asc 

にあなたのSQLを記述するためにそこに情報を使用しますデータベースから取得すると、セッションに一致するエントリになります。

関連する問題