Php 从两个表中获取信息

Php 从两个表中获取信息,php,mysql,sql,Php,Mysql,Sql,我有一个域,其中用户有一个具有自己名称的子域 例如: 用户:维托 子域:vitor.google.com 数据库中有列usertablemy_users,在表users\u infos中有列birth、address、password、city和state。 如何在PHP中做到这一点,在index.PHP中可以让用户直接访问数据库 这是我的错误代码: // Get Subdomain $urlExplode = explode('.', $_SERVER['HTTP_HOST']); if

我有一个域,其中用户有一个具有自己名称的子域

例如:

  • 用户:维托
  • 子域:vitor.google.com
数据库中有列
user
table
my_users
,在表
users\u infos
中有列
birth
address
password
city
state
。 如何在PHP中做到这一点,在
index.PHP
中可以让用户直接访问数据库

这是我的错误代码:

// Get Subdomain
$urlExplode = explode('.', $_SERVER['HTTP_HOST']);
if (count($urlExplode) > 2 && $urlExplode[0] !== 'www') {
    $subdomain = $urlExplode[0];    
    echo $subdomain;
}


// Select DB
$sql = "SELECT * FROM users_infos i INNER JOIN my_users u on u.id = i.id where u.users='$users'"; 
    $result = mysql_query($sql); 
    if($result === FALSE) { 
    die(mysql_error());
     // TODO: better error handling 
    }

else {
$row = mysql_fetch_array($result);
$userTitleSite = $row['userTitleSite'];
echo $id_textos = $row["id_textos"];
echo "<br />";
echo $id = $row["id"];
echo "<br />";
echo $phone = $row["phone"];
echo "<br />";
echo "<br />";

}

// Says that the subdomain is = user
$subdomain = $user;
//获取子域
$URLDExplode=explode('.',$_服务器['HTTP_主机']);
如果(count($urlExplode)>2&&$urlExplode[0]!=='www'){
$subdomain=$urlExplode[0];
echo$子域;
}
//选择数据库
$sql=“SELECT*FROM users\u infos i internal JOIN my\u users u on u.id=i.id,其中u.users='$users';
$result=mysql\u查询($sql);
如果($result==FALSE){
die(mysql_error());
//TODO:更好的错误处理
}
否则{
$row=mysql\u fetch\u数组($result);
$userTitleSite=$row['userTitleSite'];
echo$id_textos=$row[“id_textos”];
回声“
”; echo$id=$row[“id”]; 回声“
”; echo$phone=$row[“phone”]; 回声“
”; 回声“
”; } //表示子域为=user $subdomain=$user;
正确答案如下:

利用你给我的帮助,我好像到了这里。。 下面是我可以为有相同问题的未来用户编写的正确代码:

// Get subdomain
$urlExplode = explode('.', $_SERVER['HTTP_HOST']);
if (count($urlExplode) > 2 && $urlExplode[0] !== 'www') {
    $subdomain = $urlExplode[0];    
    echo $subdomain;
}


// Says that the subdomain is = user
$user = $subdomain;


// Select DB
$sql = "SELECT * FROM vms_textos i INNER JOIN vms_users u on u.id = i.id where u.user='$user'"; 
    $result = mysql_query($sql); 
    if($result === FALSE) { 
    die(mysql_error());
     // TODO: better error handling 
    }

else {
$row = mysql_fetch_array($result);
$userTitleSite = $row['userTitleSite'];
echo "<br />";
echo $id_textos = $row["id_textos"];
echo "<br />";
echo $user= $row["user"];
echo "<br />";
echo $id = $row["id"];
echo "<br />";
echo $telefone = $row["telefone"];
echo "<br />";
echo "<br />";

}

echo "<br />";
echo "<br />";
//获取子域
$URLDExplode=explode('.',$_服务器['HTTP_主机']);
如果(count($urlExplode)>2&&$urlExplode[0]!=='www'){
$subdomain=$urlExplode[0];
echo$子域;
}
//表示子域为=user
$user=$subdomain;
//选择数据库
$sql=“SELECT*FROM vms\u textos i internal JOIN vms\u users u on u.id=i.id,其中u.user='$user';
$result=mysql\u查询($sql);
如果($result==FALSE){
die(mysql_error());
//TODO:更好的错误处理
}
否则{
$row=mysql\u fetch\u数组($result);
$userTitleSite=$row['userTitleSite'];
回声“
”; echo$id_textos=$row[“id_textos”]; 回声“
”; echo$user=$row[“user”]; 回声“
”; echo$id=$row[“id”]; 回声“
”; echo$telefone=$row[“telefone”]; 回声“
”; 回声“
”; } 回声“
”; 回声“
”;
谢谢大家帮助我!:)


应该在$sql之前,因为您的代码是写的$user是空的。

您确定WHERE子句
u.id=i.id
正确吗?换句话说,my_users和users_infos表中的ID列是否匹配?在users_infos表(例如my_users_id)上有外键引用更常见,在这种情况下,查询类似于:

SELECT * 
FROM users_infos i 
INNER JOIN my_users u on u.id = i.my_users_id
WHERE u.users='$users'

作为SQL参数使用的变量$users,set在哪里?@trf我忘记了使用外接程序post,但仍然不起作用
SELECT * 
FROM users_infos i 
INNER JOIN my_users u on u.id = i.my_users_id
WHERE u.users='$users'