无法从数据库中打印出答案

时间:2016-05-24 10:57:54

标签: javascript php html mysql ajax

所以我这样做是为了某种练习而我真的无法弄清楚我的代码是什么问题,我也有一些关于我还想做的事情的问题。

所以继承人的第一部分,这就是所谓的index.php,它基本上就是主页。

<html>
<head>
    <script type="text/javascript">

        document.getElementById("buttonV").addEventListener('click',function(){showUser(1,'button_values')});
        document.getElementById("buttonD").addEventListener('click',function(){showUser(2,'select_values')});
        var year=document.getElementById("year").innerHTML;
        var month=document.getElementById("month").innerHTML;
        var day=document.getElementById("day").innerHTML;
        console.log("year");


        function showUser(sql,div)
        {
            var xmlhttp;
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function()
            {
                document.getElementById(div).innerHTML='<img src="ajax_loader.gif" />';
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    document.getElementById("div").innerHTML=xmlhttp.responseText;
                }
            };
            xmlhttp.open("GET","get_ajax.php",true);
            xmlhttp.send("sql="+sql);

        }
    </script>
</head>
<body>
<div>
<form>
    <input id="buttonV" type="button" value="View Log">
</form>
</div>

<div>
<form>
    Day:
    <select name="day" id="day">
        <?PHP for($i=1; $i<=31; $i++)
            echo "<option value='$i'>$i</option>";
        ?>
    </select>
    Month:
    <select name="month" id="month">
        <?PHP for($i=1; $i<=12; $i++)
            echo "<option value='$i'>$i</option>";
        ?>
    </select>
    Year:
    <select name="year" id="year">
        <?PHP for($i=1980; $i<=2016; $i++)
            echo "<option value='$i'>$i</option>";
        ?>
    </select>
    <input type="button" value="see users by datetime" id="buttonD">
</form>
<br />
</div>
<div id="button_values"></div><br />
<div id="select_values"></div>

</body>
</html>

我应该拥有的是一个按钮,它将显示我的数据库中名为wp3_ajax的表日志中的所有数据。另外在我的数据库中我有一个名为users的另一个表,我应该从那里用users表中的用户名替换日志表中的行user_id。基本上,按钮应该显示用户名,浏览器,IP和日期时间。所有这些都需要使用ajax打印在同一页面上。

接下来是get_ajax.php中代码的第二部分。

<?php

//$date=$_GET["date"];

include ("db_config.php");
include ("config.php");

$sql="";


$sqls[1]="SELECT l.ip,l.browser,l.datetime,u.username FROM `log` as l,user as u WHERE u.user_id=l.user_id ORDER BY l.datetime DESC";
//$sqls[2]="SELECT * FROM  'log' WHERE date('datetime')='$date'";
if(isset($_GET['sql']))
{
$sql=(int)mysqli_real_escape_string($connection,$_GET['sql']);
if(($sql>=1 OR $sql<=2))
{
$result= mysqli_query($connection,$sqls[$sql]) or die(mysqli_error($connection));

if (mysqli_num_rows($result)>0)
{
while ($record = mysqli_fetch_array($result,MYSQLI_BOTH))
{
    echo "$record[username]. $record[browser], $record[ip], $record[datetime] <br />";
}
    }
        }
else
echo "No access!!";
}
else
echo "No access!";
?>

出于某种原因,我无法获得主页上的按钮来执行任何操作。我无法弄清楚这是什么问题。

我还想做的另一件事是有3个选择选项,如上所示,当您选择日期显示在选择日期登录的用户的日志。但我必须切断从datetime开始的时间,并使它只是一个日期。我希望你能理解我的意思(抱歉英语不是我的第一语言),如果你不能随意让我澄清。

我还要把所有这些文件都包含在一个压缩文件中,这个文件在这里上传:on file dropper

由于我还有一个db_config.php和一个包含salted令牌的config.php,我也包含了我的sql文件。但是那些带有令牌的部分并不重要,我只想知道为什么我的按钮不显示任何内容以及如何在特定日期显示日志。

我非常感谢您的帮助,如果您决定帮助我,还要提前感谢您。

1 个答案:

答案 0 :(得分:0)

我不确定如何使用“按日期时间查看用户”按钮获取此日期和时间的用户

我仍在通过按钮调用函数,如

<input type="button" value="see users by datetime" onclick="setDetails()">

<script>
    function setDetails()
    {
       //Remove details from the starting of script and added into this function as below

       document.getElementById("buttonV").addEventListener('click',function(){showUser(1,'button_values')});
       document.getElementById("buttonD").addEventListener('click',function(){showUser(2,'select_values')});
       var year = document.getElementById("year").value;
       var month = document.getElementById("month").value;
       var day = document.getElementById("day").value;
       console.log("dd/mm/yyyy : "+day +"/"+ month +"/"+year);
    }
</script>

然后使用两个不同的按钮调用函数 showUser(sql,div),以便在不同的div中显示值,如

<input id="buttonV" type="button" value="View Log by Button V">
<input id="buttonD" type="button" value="View Log by Button D">

尝试在您的网页上实现此功能,并让我知道您获得的输出结果。