Как я могу получить UserID человека из разделенной версии его имени / фамилии из FullName в PHP? - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь сделать систему Check-in / out.

Пока у меня есть выпадающий список, который получает список активных событий.

<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), а затем заполняет информацию как по имени, так и по фамилии. Источник.

Единственное изменение в php - это эхо, отображающее имена и фамилии следующим образом:

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 из выпадающего списка.

1 Ответ

1 голос
/ 06 июня 2019

Если имя и фамилия пользователя разделены пробелом:

$nameParts = explode(' ', $myname);
$firstName = trim($nameParts[0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...