php - 如何从 PHP 中的全名的名字/姓氏的分割版本中获取一个人的用户 ID?

标签 php mysql mysqli

我正在尝试制作一个 checkin / checkout 系统。

到目前为止,我有一个获取事件事件列表的下拉菜单。

<select name="events">

<?php

    $conn = new mysqli('localhost:3306', 'user', 'pw', 'database') or die ('Cannot connect to db');
    $eveny = $conn->query("select event_title from events_event where inactive=0");
    while ($row=mysqli_fetch_array($eveny)) {
                  unset($event);
                  $event = $row['event_title']; 
                  echo '<option value="'.$event.'">'.$event.'</option>';

}
?>
</select>

还有一个根据名字搜索用户的文本框,但它会自动显示结果(如 Google 搜索),然后使用名字和姓氏填写信息。 Source.

php 中唯一的变化是 echo 显示名字和姓氏,如下所示:

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
                echo "<p>" . $row["per_FirstName"] . " " . $row["per_LastName"] . "</p>";
            }

现在解决问题

我已经将前端制作成一个表单,并使用 method="post"制作了一个提交按钮。

但是我的 php 中的某些内容无法正常运行/缺少。

<?php
   $db = new mysqli('localhost:3306', 'user', 'pw', 'database') or die ('Cannot connect to db');
   session_start();
      if($_SERVER["REQUEST_METHOD"] == "POST") {
  $myname = mysqli_real_escape_string($db,$_POST['fullname']);
  $eventy = mysqli_real_escape_string($db,$_POST['events']);

  //$checktime = mysqli_real_escape_string($db,date("Y-m-d H:i:s"));
  $evid = "SELECT event_id from events_event where event_title = '$eventy'";
  $revvy = mysqli_query($db,$evid);
  $nameParts = explode(' ', $myname);
  $firstName = trim($nameParts[0]);
  $lastName = trim($nameParts[1]);
  $sql = "SELECT per_ID FROM person_per WHERE per_FirstName = '$firstName' AND per_LastName = '$lastName'";
  $result = mysqli_query($db,$sql);
  //$row = mysqli_fetch_row($result);
  //$result = $result->fetch_all();
  while($row = mysqli_fetch_assoc($result)){
    $perID = $row['per_ID'];
  }
  while($row2 = mysqli_fetch_assoc($revvy)){
    $evvy = $row['event_ID'];
  }
  $count = mysqli_num_rows($result);
  // table row must be 1 row if it succeeded
 if($count == 1) {
     //session_register("myname");
     //$_SESSION['login_user'] = $myname;
     $checkin = "insert into event_attend (attend_id, event_id, person_id, checkin_date) values (DEFAULT, '$evvy', '$perID', now())" or die(mysqli_error());;
     mysqli_query($db,$checkin);
     header("location: checkedin.php");
  }else {
         $error = "An error occurred.";

      }
   }
?>

$myname 是名字和姓氏的结果,我只需要基于使用名字和姓氏填写的文本字段的名字。

我也无法从下拉列表中获取 Event_ID。

最佳答案

如果用户的名字和姓氏用空格分隔:

$nameParts = explode(' ', $myname);
$firstName = trim($nameParts[0]);

关于php - 如何从 PHP 中的全名的名字/姓氏的分割版本中获取一个人的用户 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56470759/

相关文章:

php - Mysqli 查询不执行

php - 正确支付后如何单独放入购物车的商品?

php - session 注销同时获取大量数据

php - 将哈希值从 php script() 移植到 python

php - 使用 Facebook Graph API 获取纽约市的餐厅列表

mysql - 根据时间间隔查询获取计数值

php - 我可以在 PHP 中混合使用 MySQL API 吗?

javascript - PHP mysqli执行不返回值

c# - 如何构造一个正确的MySQL连接串?

mysql - 使用 UPDATE 查询时出现基本 MySQL 错误