我正在尝试从我的数据库中获取日期,但仅在满足某些条件时才会这样。 我想要一个表来填充来自mySQL的数据,只有在用户名下提交数据时。 (即此数据与此用户相关。)
此数据已保存为TIMESTAMP
。
$sql = "SELECT * FROM bug LIMIT 100";
$result = mysql_query($sql)or die(mysql_error());
while($row = mysql_fetch_array($result)){
$bdate = $row['bugDate'];
$bfor = $row['bugFor'];
$finduserid= mysql_query
("SELECT UserId FROM user WHERE userName='{$_SESSION['myusername']}'");
if($finduserid)
{
$getuserid = mysql_fetch_assoc($finduserid);
}
$findbdate =
mysql_query("SELECT bugDate FROM bug WHERE bugDate = '$bdate'
AND '$bfor' = '" . $getuserid['UserId'] . "'");
if($findbdate)
{
$getbdate = mysql_fetch_array($findbdate);
}
$bdatetime = new DateTime($getbdate['bugDate']);
$formattedbdate = date_format($bdatetime, 'd,M Y');
如果有人能帮助我,我会非常感激。
显然,安全性非常糟糕,而且我很确定这种方法是做我想做的事情最无效的方式,但是我是一个菜鸟,并且在做什么。如果您有一些关于安全性的noob友好文档,并且看到这让您感到畏缩,请随时发布链接。非常感谢任何帮助。(如果我不想知道更多,请告诉我,如果我没有首先包含它,请告诉我们!)
编辑:我搞定了。我这样做是最环形的,任何人都可以提出的荒谬方式。虽然我没有使用JOIN
,但它让我走上了正确的道路。压缩了250行毫无意义的不工作代码,低至3-4,除了我之外,对每个人来说都是显而易见的。
我选择了我的会话登录等于数据库上的loginName的行。
$finduserid= "SELECT UserId FROM user WHERE userName='{$_SESSION['myusername']}'";
$runuserid = mysql_query($finduserid)or die(mysql_error());
while($getuserid = mysql_fetch_array($runuserid)){
$userid = $getuserid['0'];
}
然后,我只选择包含我的用户名的记录(而不是一切,然后试图摆脱没有我的用户名的所有内容。)-_-(我是个白痴。)
$sql = "SELECT * FROM bug WHERE bugFor = '$userid'";
$result = mysql_query($sql)or die(mysql_error());
答案 0 :(得分:0)
阅读JOINs。
我无法准确地告诉你的代码应该做什么,或者完全破译你的数据库模式,但是下面的查询应该得到在给定日期提交的当前用户的所有错误:
SELECT b.*
FROM bug b INNER JOIN users u
ON b.bfor = u.userID
WHERE u.userName = '{$_SESSION['myusername']}'
AND b.bugDate = '$bdate'