0

データベースから日付を取得しようとしていますが、特定の条件が満たされた場合のみです。データがユーザー名で送信された場合にのみ、テーブルに 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');

誰かが私を助けることができれば、私はそれを大いに感謝します.

明らかにセキュリティはひどいものであり、この方法は私がやろうとしていることを実行する最も非効率的な方法であると確信していますが、私は初心者であり、実行することで一種の学習を行っています. セキュリティに関する初心者向けのドキュメントがあり、これを見てうんざりしている場合は、お気軽にリンクを投稿してください。どんな助けでも大歓迎です。

(もっと知りたいことがあれば教えてください。最初にそれを含めなかった場合は申し訳ありません!)

編集:私はそれを働かせました。私はそれを、誰もが思い付くことができる最も回りくどい、ばかげた方法で行っていました。私はそれを使用しませんでし 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());
4

1 に答える 1