Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql select*不是最新的_Php_Mysql - Fatal编程技术网

Php mysql select*不是最新的

Php mysql select*不是最新的,php,mysql,Php,Mysql,我的表中的sql实体有问题 我得到了两个php脚本,一个向表中添加新项,另一个获取所有项并将它们作为json返回 返回脚本需要一些时间来返回实际条目。我的意思是,如果我在表中添加或删除一个entrie,我的返回脚本在删除/添加条目之前仍然会显示条目。一段时间后,它得到了正确的结果,但我无法解释为什么 这是我的返回码: $con = new mysqli($servername, $username, $password, $dbname); if (!$con) { die('Could n

我的表中的sql实体有问题

我得到了两个php脚本,一个向表中添加新项,另一个获取所有项并将它们作为json返回

返回脚本需要一些时间来返回实际条目。我的意思是,如果我在表中添加或删除一个entrie,我的返回脚本在删除/添加条目之前仍然会显示条目。一段时间后,它得到了正确的结果,但我无法解释为什么

这是我的返回码:

$con = new mysqli($servername, $username, $password, $dbname);
if (!$con) {
  die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"Einkaufsliste");
$sql="SELECT * FROM Einkaufsliste";
$result = $con->query($sql);

while($row = $result->fetch_array(MYSQLI_ASSOC)){
    $rows[] = $row;
}

$items = array();
foreach($rows as $row){
    $row_array['item'] = $row['item'];
    array_push($items, $row_array);
}
echo json_encode($items);
/*echo "bla";*/

$con->close();
所以,如果我的表中有3个项目,并且我添加了一个,那么我的返回值仍然是3。如果我通过phpmyadmin检查数据库,则有4个条目

我忘了提到这是我通过jscript获取结果的方式

function showItems() {
    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() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            //document.getElementById("test").innerHTML = xmlhttp.responseText;
            //alert(xmlhttp.responseText);
            document.getElementById("itemList").innerHTML = "";

            var res = JSON.parse(xmlhttp.responseText);
            alert(res);
            for(var k = 0; k < res.length; k++){
                $('#itemList').append('<li><a href="#">'+res[k].item+'</a><a class="deleteMe"></a></li>').listview('refresh');
            }
        }
    };
    xmlhttp.open("GET","getItems.php",true);
    xmlhttp.send();
}

在输出ajax响应的页面中,或者不添加缓存头:

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
或者在ajax调用中添加一个带有时间戳的参数,这样每个请求都将被视为唯一的并单独缓存,从而产生关闭缓存的错觉:

var d = new Date();
xmlhttp.open("GET", "getItems.php?t="+d.getTime(), true);

或者两者都有。

您的查询很可能被缓存在某个地方。是否在另一个脚本中缓存事务?新行在提交之前不会显示在其他连接的查询中。如果我刷新条目,phpmyadmin会立即显示它们。非常感谢!日期选项可以正常工作。duuno如果是故意的话tho