Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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
Javascript 如何在MySql中存储用户的屏幕名称?_Javascript_Php_Mysql_Database Design - Fatal编程技术网

Javascript 如何在MySql中存储用户的屏幕名称?

Javascript 如何在MySql中存储用户的屏幕名称?,javascript,php,mysql,database-design,Javascript,Php,Mysql,Database Design,我有一个登记表,用户可以在其中输入一些关于自己的信息。我自己不喜欢必填字段,所以表格很自由。 因此,有一个为用户生成屏幕名称的函数。 用户可以有一个登录名,[login]字段是可选的,因为用户可以选择通过社交网络注册。 因此,为用户生成屏幕名称背后的想法是 JavaScript: var nickname = $('#nickname'); var fullname = $('#fullname'); var screen_name = $('#screen-name'); if (nickna

我有一个登记表,用户可以在其中输入一些关于自己的信息。我自己不喜欢必填字段,所以表格很自由。 因此,有一个为用户生成屏幕名称的函数。 用户可以有一个登录名,[login]字段是可选的,因为用户可以选择通过社交网络注册。 因此,为用户生成屏幕名称背后的想法是

JavaScript:

var nickname = $('#nickname');
var fullname = $('#fullname');
var screen_name = $('#screen-name');
if (nickname.val() && fullname.val()) {
    screen_name.val(fullname.val()+" ("+nickname.val()+")");
} else {
    screen_name.val(nickname.val() || fullname.val() || $('#login').val());
}
HTML:

问题是:


上面的方法可以吗?一方面,表用户可能不符合SQL标准格式,因为screen_name字段是冗余的。另一方面,当有人想要搜索用户并查看他们的屏幕名称时,这可能是一个性能问题,这会经常发生。

您担心得太多了。它只是在某个时间是冗余的概念级别,仅适用于那些选择不设置自定义屏幕名称的用户。如果您不在其中存储某些内容,则需要其他字段来指示此用户没有屏幕名称,或者将屏幕名称字段设置为null,以及许多要处理的特殊情况查询/php代码字段是否为null?然后替换为real name.Marc,关键是表单中没有screen_name字段。只有login、fullname和昵称。仅此而已。所有其他字段都与用户名或其变体无关。
<p>
  <label for="login"><span><?= _("Login") ?></span><span class="asterix" style="color:red"> *</span></label>
  <input type="text" name="login" id="login" value="111" class="textinput" required/>
</p>
<p>
  <label for="fullname"><span><?= _("Full name") ?></span></label>
  <input type="text" name="fullname" id="fullname" value="" class="textinput"/>
</p>
<p>
  <label for="nickname"><span><?= _("Nickname") ?></span></label>
  <input type="text" name="nickname" id="nickname" value="" class="textinput"/>
  <input type="hidden" name="screen_name" id="screen-name" value="" />
</p>
        $query_user_insert = $this->db_connection->prepare('INSERT INTO users (login, fullname, nickname, screen_name) VALUES(:login, :fullname, :nickname, :screen_name)');
        $query_user_insert->bindValue(':login', $login, PDO::PARAM_STR);
        $query_user_insert->bindValue(':fullname', $fullname, PDO::PARAM_STR);
        $query_user_insert->bindValue(':nickname', $nickname, PDO::PARAM_STR);                  
        $query_user_insert->bindValue(':screen_name', $screen_name, PDO::PARAM_STR);