我有两张table
具有id、user\ formofadress和多个附加字段的用户。字段user\u formofaddress包含表formofaddress的id
带有id的formofadress、formofadress和其他几个字段,例如id 1=mr、id 2=mrs。
用户表的记录由会话变量标识。
要输出的不是字段user\u formofaddress的id,而是表formofaddress.formofaddress\u德语的值(例如mr或mrs),我编写了以下命令:
if(array_key_exists("id", $_SESSION) && $_SESSION['id']){
$uid = $_SESSION['id'];
$link = mysqli_connect("localhost:3307", "root", "Dinah123", "proficrm");
$query = "
SELECT formofadress.ID AS formofadress_ID, formofadress.formOfAdress_german, users.ID, users.user_formOfAdress
FROM `formofadress`
LEFT JOIN users
ON formofadress.formofadress_ID = users.user_formOfAdress
WHERE `users.ID` = '".$uid."'
LIMIT 1
";
$result = mysqli_query($link, $query);
$record = mysqli_fetch_assoc($result);
$user_formOfAdress = $record['formOfAdress_german'];
}
“from formofaddress”是因为我想输出这个表的mr或mrs,但是我还必须使用users表,因为session id也是users记录的id。。。
不是users表中的每条记录都有user\ formofddress的值(值1、2或null),但是formofaddress表中的每条记录都有一个固定值。
错误是:未定义的变量:用户\位于最后一行的formofadress
这是我第一次使用连接,不幸的是,我无法解决这个问题,即使经过长时间的搜索。
正确代码:
if(array_key_exists("id", $_SESSION) && $_SESSION['id']){
$uid = $_SESSION['id'];
$link = mysqli_connect("localhost:3307", "root", "Dinah123", "proficrm");
$query = "
SELECT formofadress.ID, formofadress.formOfAdress_german, users.ID, users.user_formOfAdress
FROM formofadress
LEFT JOIN users
ON formofadress.ID = users.user_formOfAdress
WHERE users.ID = '".$uid."'
";
$result = mysqli_query($link, $query);
$record = mysqli_fetch_assoc($result);
$user_formOfAdress = $record['formOfAdress_german'];
}
1条答案
按热度按时间laximzn51#
你的电脑有问题
SQL
语法。你曾经LEFT JOIN
加入users
至formofadress
而users
有时跟不上,你可能会得到一个NULL
价值观。我还清理了其他查询语法,使其更具可读性。另外,检查数据库是否需要
INT
为了$uid
. 如果没有,则返回撇号''
.