如何在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">&#x2715;</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中显示中文???的主要内容,如果未能解决你的问题,请参考以下文章

从 Java 生成 SSH 密钥

如何在mysql中显示中文???

如何让PowerDesigner中的表显示中文

请问Eclipse中源码的中文部分都显示成乱码如何解决?

LINUX SSH显示中文乱码,如何解决?

如何在windows的DOS窗口中正常显示中文(UTF-8字符)