【发布时间】:2013-06-29 17:24:10
【问题描述】:
我有一个 php 页面,用户试图在其中查找在线人。
有一个搜索按钮,点击它,在数据库中为当前用户创建一个条目,控件进入一个循环,每 5 秒在数据库中进行一次搜索,以查找是否有新条目进行,如果找到条目,则会向他显示合作伙伴的详细信息。
我希望如果用户在找到合作伙伴之前退出或导航离开页面,则必须从数据库中删除他的条目。
我正在尝试将针对用户创建的“id”存储在会话变量中,进行 ajax 调用并删除条目,但不知何故,这个概念不起作用。数据没有被删除。这是因为循环仍在寻找用户或其他原因,我无法得到它。
谁能告诉我我的方法出了什么问题?
我正在使用的代码 sn-p 特此
window.onbeforeunload = function() {
funcDeleteonexit();
return "Are you sure you want to navigate away?";
}
function funcDeleteonexit(){
$.get("functions.php",{
data:"delete"
},function(data,status){
});
}
在我的functions.php中,我有
if($_GET){
if ($_GET['data']=="delete"){
echo deletefromDb();
}
}
function deletefromDb() {
$mysqli = new mysqli("localhost", "root", "", "test");
/* check connection */
if (mysqli_connect_errno())
{
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$currentid = (int)$_SESSION['currentId'];
$query1 = "delete from test where id =". $currentid;
$mysqli->query($query1);
$mysqli->close();
return $currentid;
}
【问题讨论】:
-
您的脚本充满了不良做法,包括
global state、code duplication以及违反所有 SOLID 原则。 -
嘿,戴夫,我是 php 新手。你能指出我的代码中的缺陷吗?
-
我推荐
www.phpmaster.com。从新手教程开始 -
感谢您的推荐。你有办法解决我的问题吗?
-
$currentid = (int)$_SESSION['currentId'];添加一个;最后