[英]how to call / check data of only one row of mysql database in a session array using php?
例如,有两个名为
user
id name
-- -----
1 Mike
2 Bob
3 Tony
4 Christina
5 James
product
product_id chooser_id chooser_name selection_status
---------- ---------- ------------ -----------------
1 1 Mike 0
2 2 Bob 1
3 3 Tony 0
4 3 Tony 1
5 3 Tony 1
这里,上面product
表中可用的数据由user
表的登录user
根据以下mysql语法插入。
mysql_select_db($database_XYZ, $XYZ);
$query_test = "SELECT user.id, user.name, product.product_id, product.chooser_id, product.chooser_name, product.selection_status FROM user, product WHERE user.id = '$_SESSION[userid]' AND user.id = product.chooser_id AND product.selection_status = 1 ";
$test = mysql_query($query_$test, $XYZ) or die(mysql_error());
$row_test = mysql_fetch_assoc($test );
$totalRows_test = mysql_num_rows($test );
现在,如果用户Tony想检查由他在登录会话中插入的product
表的selection_status
( 0
和1
是标记值),具体取决于以下语法
if (isset($row_test ["selection_status"]) == "1") {
echo $row_test ["selection_status"];
}
语法异常返回1
, 1
,因为他仍然登录,同时检查数据,并获取其意外似乎与所有行mysql
查询从下面的部分product
表:
product_id chooser_id chooser_name selection_status
---------- ----------- ------------- -----------------
4 3 Tony 1
5 3 Tony 1
如何使用替代的php条件语句在会话数组中调用/检查仅mysql数据库的一行,以便在每次检查或调用时仅返回一行的数据?
product_id chooser_id chooser_name selection_status
---------- ----------- ------------- -----------------
4 3 Tony 1
要么
product_id chooser_id chooser_name selection_status
---------- ----------- ------------- -----------------
5 3 Tony 1
请注意, mysql LIMIT
和WHERE product_id=4
等不适用于此处,因为数据将通过会话在此处填充。
问题已经解决。 在if(isset($ row_test [“ selection_status”])==“ 1”){中。 isset在可用数据上返回true或不为null。 所以我将其删除,并将语法更改为if($ row_test [“ selection_status”] ==“ 1”){。 此外,我从mysql语法中删除了条件AND product.selection_status = 1
。
从这篇文章中可以学到的教训: flagged value
为基于会话的复杂mysql
查询中的条件,用于过滤特定/主ID特定的行不能维护session variable
的规则。 这是一种不遵循session rule
的例外情况。 在这种情况下,除mysql查询外,在必要时应使用php条件语句或比较语句来调用标记的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.