如何在mysql中显示中文???
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在mysql中显示中文???相关的知识,希望对你有一定的参考价值。
我在jsp页面中插入一组数据(汉字),再mysql中显示的是???,要怎么样在mysql中正常显示汉字?我mysql和jsp都是设置为utf-8,请大侠指教!!!
utf8Web页面:查询之前执行一下:
set character set \'utf8\' 语句(SQL)
同样写入数据执行一下:
set names \'utf8\'
如果你是用的客户端直接查询mysql,可将上面的utf8改为gbk试试 参考技术A 取出数据的时候设置文字的格式utf-8,就可以了 参考技术B 数据库也设置为UTF8格式,然后在存储前 设置下 mysql_query("set names gb2312") 就ok了 参考技术C 编码格式改为 gbk
我们如何在 jQuery/php/mySQL 中显示最近的通知?
【中文标题】我们如何在 jQuery/php/mySQL 中显示最近的通知?【英文标题】:How can we show recent notifications in jQuery/php/mySQL? 【发布时间】:2016-07-06 21:10:12 【问题描述】:假设有一个新行插入到数据库中。如何在 div 中显示一次通知并在关闭它后不再显示?我知道我不能使用setInterval
,因为它会在一段时间后不断弹出(比如说 10 秒)。我的想法是它每 10 秒检查一次更新,如果有新行,它将显示通知,但在我按“x”后,它会关闭。 10 秒后它将再次检查,现在它将检查该行的 id 是否与以前相同。如果没有,则显示一个新的 toast。
于是我使用了setTimeout
函数并再次触发了它。
(function poll()
setTimeout(function()
$.ajax( url: "ravimDataCount.php", success: function(data)
//check if the id is the same or not here
$("#noti-box").append('<div class="alert alert-info "><button data-dismiss="alert" class="close close-sm" type="button"><i class="fa fa-times"></i></button>New form filled out by Dr.</div>');
poll();
, dataType: "json");
, 5000);
)();
已经为此苦苦挣扎了很长时间。任何帮助表示赞赏。
编辑! 因此,如下面的答案所述。我在 DB 中添加了一个名为 see 的新列。默认值为 0。如果我理解正确,那么我需要在显示通知后立即将 seen=0 更改为 1,这样它就不会再循环并向我显示无限数量的相同通知。
这就是我目前所拥有的:
function fetch_notification()
setInterval(function()
//GET ALL DATA WHERE SEEN=0
$.ajax(
url: "fetchResults.php",
success: function(data)
$.each(data.vormid, function(i, vormid)
$("#noti-box").append('<div class="alert alert-info "><button data-dismiss="alert" class="close close-sm" type="button"><i class="fa fa-times"></i></button>New form filled out by Dr. '+data.vormid[i].arsti_eesnimi+' '+data.vormid[i].arsti_perekonnanimi+'</div>');
);
update_notification();
, dataType: "json");
, 5000);
fetch_notification();
//UPDATE SEEN=0 to 1
function update_notification()
console.log("updating");
我的两个 PHP 文件是 fetchResults.php 和 updateResults.php
fetchResults.php:
<?php
header('Content-Type: application/json');
include_once '../dbconfig.php';
$stmt4 = $DB_con->prepare("SELECT * FROM ravim WHERE seen =0 ORDER BY date_created DESC");
$stmt4->execute();
$vormid = $stmt4->fetchAll(PDO::FETCH_ASSOC);
echo json_encode(array("vormid" => $vormid));
?>
updateResults.php:
<?php
header('Content-Type: application/json');
include_once '../dbconfig.php';
$ravim_id = $_POST['ravim_id'] ;
$stmt4 = $DB_con->prepare("UPDATE ravim SET seen=1 WHERE ravim_id=:ravim_id");
$stmt4->execute();
?>
我想不通。我知道我必须将通知的正确行 ID 传递给 updateResults.php。
【问题讨论】:
那么,您是在问如何检查 id? (您评论下的代码) @DimChtz 没有。我想问我的逻辑是否正确以及如何做这种通知。我阅读了所有其他帖子和书籍,但无法弄清楚。 "在 div 中显示一次通知,关闭后不再显示" 您的意思是您不想再次检查数据库中的新行吗? 他想为每个新添加的行显示一次通知。如果未添加新行,则不应出现通知。对吗? 不断检查新行,因为用户可以一次又一次地填写表格。由于我正在尝试实现一个管理面板,在那里我可以看到所有新条目,如果添加了新行,我想显示一次通知。然后我关闭它,同样的通知不会出现。但是如果将新行插入数据库,我会收到一个新通知。 【参考方案1】:我知道的实现方式是
根据您的要求添加一个名为seen
或您喜欢的列(INT)。
将 seen
设置为默认值 0。
显示所有看不见的行的通知,即seen =0;
的值
在显示通知后,将所有具有seen=0
的行的seen
列更新为1。
就是这样。
jQuery 部分是
-
首先创建一个函数让我们说
fetch_notification()
,包括用于选择seen=0
所在行的ajax
然后创建另一个函数让我们说update_notification()
将具有seen=0
的每一行更新为seen=1
。
然后在间隔调用fetch_notification()
之后
更新
另一个想法是 创建表格并将新通知添加到表格中,并在用户显示或关闭通知时删除每一行
让我们说您是否想向管理员发送有关新用户的通知
-
将每个新用户 ID 添加到新表中。
当管理员在每个通知中单击关闭时逐一删除每个相应的行
jQuery 部分
-
使用ajax检查表(新通知表)的行号是否大于1,
如果它大于 1,则向管理员显示所有用户 ID 作为通知。
如果管理员单击关闭通知,请使用另一个 ajax 删除该行。
所以需要创建一个函数来频繁检查行数是否大于一。
还有另一个使用 ajax 删除行的功能,只有在管理员单击 x(关闭)时才需要工作。
这个想法更好,因为它不会给服务器端带来太多负载(实际上根本没有负载)。主要的数据库函数是插入,删除和检查行号
【讨论】:
@raqulka 在使用 ajax 方法实现该想法时提出了另一个问题。并在此评论中链接问题,以便我可以查看它。【参考方案2】:试试这个,
在这里摆弄https://jsfiddle.net/yacbnvhq/
将_notify(_txt, _id, _callback1, _callback2)
放入您的更新 10 秒代码中
var newRowCollection = []; //this is your row id collection
$('input').on('click', function()
_notify('Hello Bucky', '22', function()
alert('Showing!!');
, function()
alert('Completed!!');
);
);
_notify(); //calling toast without any values
function _notify(_txt, _id, _callback1, _callback2)
if (newRowCollection.indexOf(_id) == -1)
$('#toastNotifier').remove();
_id !== undefined ? newRowCollection.push(_id) : '';
var toastNotifier = $('<div id="toastNotifier"></div>'),
toastText = $('<div class="toastText"></div>'),
toastBt = $('<div class="toastButton">✕</div>');
_txt == undefined ? _txt = 'Just Saying hi!!' : '';
toastNotifier.append(toastText.html(_txt)).append(toastBt);
toastNotifier.css(
'display': 'none',
'background': '#2D2D2D',
'position': 'absolute',
'left': '10px',
'bottom': '-50px',
'border': '1px solid # 000',
'box-shadow': '0px 0px 13px rgba(0, 0, 0, 0.42)',
'border-radius': '6px'
).find(toastBt).css(
'display': 'inline-block',
'padding': '15px',
'font-weight': 'bold',
'color': '#737373',
'cursor': 'pointer'
).end().find(toastText).css(
'display': 'inline-block',
'padding': '15px 10px',
'text-transform': 'uppercase',
'color': '#fff'
);
$('body').append(toastNotifier);
toastNotifier.show().animate(
bottom: '30px'
,
complete: function()
if (_callback1 !== undefined && typeof _callback1 === "function")
_callback1();
;
);
toastBt.on('click', function()
if (_callback2 !== undefined && typeof _callback2 === "function")
_callback2();
;
toastNotifier.remove();
);
//if statement closed here
else
alert('Row Id exists!!');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" value="Click Me" />
【讨论】:
【参考方案3】:创建一个保存最后一个 id 的全局变量:
var lastID;
然后在您的函数内部,在您的注释下,并假设数据包含新行的 id,只需检查:
if (lastID != data)
showNotification();
// update lastID
lastID = data;
【讨论】:
所以在我的 PHP 查询中,我需要选择行 ID 对吗? @raqulka 是的,这就是你所需要的 请让我试试看。 @raqulka 希望它能满足您的需求:) 我们可以过去聊天吗?因为它仍然在循环。以上是关于如何在mysql中显示中文???的主要内容,如果未能解决你的问题,请参考以下文章
MySQL - 如何在多列 html 表中显示,单列 mysql 表