2016-11-05 56 views
0

所以在我的会话中是一个带有用户添加的各种序列号的表。还有一个带有相应序列号信息的db。如果语句不像预期的那样使用PHP会话和SQL

我想让我的代码做的是,对于会话中的每个串行,从数据库中提取相应的数据。现在,我只会回显一个字符串。

所以我想这样做,你必须循环访问会话中的每个序列,并且你必须检查每个序列中是否存在同一个序列,如果它存在,然后回显一些内容。

问题是,它的工作原理,但它只运行最后一次循环一次,当我在会话中有多个序列。

下面是在会话中有1,2,3和4个连续字符时得到的回显。 http://pastebin.com/BcWMZ542

任何帮助将不胜感激。

代码:https://gist.github.com/anonymous/f961509aa407f270d9325ed2aa40b42d

+0

你应该改变你的方案。从会话中收集序列号并创建查询以检查其在数据库中的存在。现在,在您的代码中,当您完成序列号1的检查并转到序列号2时,“$ row”不会被重置。 – RST

回答

0

$_SESSION["cart"]第一的foreach项后,您就环槽数据库结果。

这意味着,在接下来的循环中,这将是空的: while($row = mysql_fetch_array($books, MYSQL_NUM))

首先,不要使用过时的mysql_类。

其次,它是在$_SESSION["cart"]信息,以第一循环更好,并使用那里的信息来编写SQL来

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

,那么你就不需要再次验证,所有的结果你会从数据库获取将是符合您的会话的条目。