【问题标题】:How to convert the name into id and save it to database as id in PHP?如何将名称转换为 id 并将其作为 id 在 PHP 中保存到数据库?
【发布时间】:2016-02-01 08:23:13
【问题描述】:

我正在用 PHP 制作简单的邮件系统。

我用了两个表:

  1. 用户表
  2. 消息表

我使用用户表中的登录名并且也使用过会话。 使用 id 消息发送消息时正在发送。但是,当我在“mto”字段中使用他们的名字时,它会自动使用 0 id..

谁能回答我?

编写按钮代码:

<a  class="btn btn-block btn-compose btn-lg" id="loginButton"><i class="fa fa-" ></i> Compose Mail </a>
        <!-- The login modal. Don't display it initially -->
        <form id="loginForm" method="post" class="form-horizontal" style="display: none;">
            <div class="form-group">
                <label class="col-xs-3 control-label">To</label>
                <div class="col-xs-5">
                    <input type="hidden" class="form-control" name="from" />
                </div>
                <div class="col-xs-5">
                    <input type="text" class="form-control" name="to" value="<?php echo 'name' ?>"/>
                </div>
            </div>
            <div class="form-group">
                <label class="col-xs-3 control-label">Subject</label>
                <div class="col-xs-5">
                    <input type="text" class="form-control" name="ssubject" />
                </div>
            </div>

            <div class="form-group">
                <label class="col-xs-3 control-label">Message</label>
                <div class="col-xs-5">
                    <textarea name="smessage" class="form-control"></textarea>
                </div>
            </div>

            <div class="form-group">
                <div class="col-xs-5 col-xs-offset-3">
                    <button type="submit" class="btn btn-default">Send</button>
                </div>
            </div>
        </form>

用户 ID 与消息表的 to 和 from 字段相关联。

如果我们输入 id 那么它需要 id 但我想从用户名中获取名称并将 id 存储在消息表中。

请帮帮我。

<?php
include('../session.php');
$from="$session_id";
$to=mysql_real_escape_string($_POST["to"]);
$subject=mysql_real_escape_string($_POST["ssubject"]);
$message=mysql_real_escape_string($_POST["smessage"]);
if($from==$to){
    echo "Message could not be sent";
    die();
}
if($from>1 && $to>1){
    echo "Message could not be sent";
    die();
}



//echo $to.$message;
//validate before insert
if(strlen($subject)>50){
    echo "Subject was too long";
    die();
}
if(strlen($message)>150){
    echo "Message was too long";
    die();
}
include('../dbsource.php');
$mysqli=connect();

if(insert($mysqli,$from,$to,$subject,$message)>0)

{
    echo "<script type=\"text/javascript\">".
        "alert('Message was successfully sent');".
        "</script>";
   // $result='<div class="alert alert-success">Thank You! I will be in touch</div>';


    }
else
{
    echo "<script type=\"text/javascript\">".
        "alert('there was error sending message.. please try it later');".
        "</script>";

}
?>


<?php
function insert($mysqli,$from,$to,$subject,$message){   
    $mdate=date('Y-m-d');
    $mtime=date('H:i:s');   
    $query = "INSERT INTO messages (mfrom,mto,subject,message,mdate,mtime)".
        "VALUES ('$from','$to','$subject','$message','$mdate','$mtime')";
    if($mysqli->query($query)>0)
        return($mysqli->insert_id);
    else
        return 0;
}
?>

【问题讨论】:

    标签: php database login


    【解决方案1】:

    但是当我在“mto”字段中使用 theie 名称时,它会自动使用 0 id - 这是因为 mto 字段的类型为 int,您无法将字符存储为 int 类型,如果要存储名称,请将其更改为 varchar。但是,与其存储名称,您可以与用户表建立关系,这是一种更好的方法。

    【讨论】:

    • 我与用户和消息表有关系,用户“id”与消息“to”和“from”字段有关系
    猜你喜欢
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多