只有在满足某些条件时,如何从数据库中获取日期才能显示?

时间:2013-10-15 17:12:09

标签: php mysql

我正在尝试从我的数据库中获取日期,但仅在满足某些条件时才会这样。 我想要一个表来填充来自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());

1 个答案:

答案 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'