在PHP中,如何从FullName中的名字/姓氏的拆分版本中获取一个人的用户名?
我正在试着做一个登记入住/退房系统 到目前为止,我有一个下拉列表,可以获得活动事件的列表在PHP中,如何从FullName中的名字/姓氏的拆分版本中获取一个人的用户名?,php,mysql,mysqli,Php,Mysql,Mysqli,我正在试着做一个登记入住/退房系统 到目前为止,我有一个下拉列表,可以获得活动事件的列表 <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_even
<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>
还有一个文本框,可以根据名字搜索用户,但它会自动显示结果(如谷歌搜索),然后用名字和姓氏填写信息
php中唯一的变化是显示姓名和姓氏的echo,如下所示:
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo "<p>" . $row["per_FirstName"] . " " . $row["per_LastName"] . "</p>";
}
while($row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)){
回声“”$row[“peru FirstName”]。“$row[“peru LastName”]。””;
}
现在开始解决问题
我已经使用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.";
}
}
?>
如果用户的名字和姓氏用空格分隔:
$nameParts = explode(' ', $myname);
$firstName = trim($nameParts[0]);
我认为在这行:$checkin=“insert into event_attent(attent_id,person_id,checkin_date)值(NULL,$result2',$result',now());,您添加了3个列名和4个值。这可能会引起一个问题。请添加4个列名和4个值。然后再试一次。在这一行:$active=$row['active'];您正在尝试获取一个您没有获取的列(您只获取id),为什么不给他们一个唯一的用户名和密码-就像其他登录系统一样?谢谢,通过使用:$lastName=trim($nameParts[1]),我得到了名字,也得到了姓氏;