Sau một tuần googling và tìm kiếm.Tôi khó tìm thấy ngay cả một hướng dẫn duy nhất về bỏ phiếu dài từ một bảng cơ sở dữ liệu thay vì từ một tập tin văn bản phẳng có tên data.text. Hiện tại, tôi viết bằng tay bất cứ điều gì trong data.text và nó ngay lập tức xuất hiện trong trình duyệt.Bỏ phiếu dài với dữ liệu cơ sở dữ liệu?
Đây là câu hỏi: Việc bỏ phiếu dài sử dụng cơ sở dữ liệu? không được trả lời đúng ngay cả trong StackOverflow. (Tôi tìm thấy rất nhiều ở đây nhưng vô ích.) Ví dụ về điều này cũng ở đây filemtime alternative for MySQL
Làm cách nào để sửa đổi getdata.php để cho phép tìm nạp dữ liệu từ cơ sở dữ liệu?
$sql=mysqli_query($database,"SELECT * FROM messages where time>=$curr_date ORDER by time DESC");
while($row=mysqli_fetch_array($sql)){
$messages=$row['messages'];
$id=$row['id'];
echo $messages;
}
Tin nhắn của bảng như sau
id fro to mesg time status last_modified
Tôi đang ở đây liệt kê một ví dụ. Trong ví dụ này, ba tệp đang được sử dụng.
- index.html
- getdat.php
- data.text
Có bất kỳ cần phải tạo một tập tin thứ tư để lấy dữ liệu từ cơ sở dữ liệu (mysql)? nếu không, thì loại thay đổi nào là cần thiết trong getdata.php hoặc data.text để sử dụng dữ liệu động từ cơ sở dữ liệu?
Đây là Javascript tôi
<script type="text/javascript" charset="utf-8">
var timestamp = null;
function waitformsg() {
$.ajax({
type:"Post",
url:"getdata.php?timestamp="+timestamp,
async:true,
cache:false,
success:function(data) {
var json = eval('(' + data + ')');
if(json['msg'] != "") {
$("#messages").append(json['msg']);
}
timestamp = json["timestamp"];
setTimeout("waitformsg()", 1000);
},
error:function(XMLhttprequest, textstatus, errorthrown) {
alert("error:" + textstatus + "(" + errorthrown + ")");
setTimeout("waitformsg()", 15000);
}
});
}
$(document).ready(function() {
waitformsg();
});
</script>
Dưới đây là file getdata.php
<?php
include("../model/includes/classes.php");
$filename='data.php';
$lastmodif=isset($_GET['timestamp'])?$_GET['timestamp']:0;
$currentmodif=filemtime($filename);
while($currentmodif<=$lastmodif){
usleep(10000);
clearstatcache();
$currentmodif=filemtime($filename);
}
$response=array();
$response['msg']=file_get_contents($filename);
$response['timestamp']=$currentmodif;
echo json_encode($response);
?>
Chào mừng bạn đến với Stack Overflow. Nó sẽ giúp bạn nhận được câu trả lời nếu bạn làm rõ câu hỏi của mình. Có vẻ như bạn đang tạo một trang web (còn được gọi là một ứng dụng khách trong Javascript) được cho là sử dụng ajax để thăm dò ý kiến máy chủ của bạn. Có vẻ như bạn muốn yêu cầu ajax đầu tiên để getdata.php truy xuất tất cả các thư đã được lưu trữ trong bảng của bạn và cho các yêu cầu tiếp theo để truy xuất bất kỳ thư mới nào đã xuất hiện kể từ lần yêu cầu gần đây nhất. Đúng không? Ngoài ra, vui lòng hiển thị định nghĩa bảng 'tin nhắn' của bạn. –
@OllieJones Cảm ơn bạn đã trả lời. Có vẻ như tôi là một hy vọng cuối cùng để giải quyết câu truy vấn này.Chỉ cần. Tôi đang sử dụng ứng dụng trò chuyện tán gẫu sử dụng bảng technical.Messaes bỏ phiếu dài chỉ là một bảng trò chuyện nổi bật bao gồm id, đến, từ, tin nhắn, cột thời gian. –