Php 用于显示两个关系表中的一个帐户的Sql代码

Php 用于显示两个关系表中的一个帐户的Sql代码,php,Php,我只想显示两个关系表中的一个帐户。例如,如果我查询并输入我的帐号,则只会显示我帐号的详细信息,而不是每个成员。因此,在我的输出中,整个成员及其在数据库中的详细信息都会显示出来。如何从两个关系表中仅显示一个帐户?我知道我的sql有问题 <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'password'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn

我只想显示两个关系表中的一个帐户。例如,如果我查询并输入我的帐号,则只会显示我帐号的详细信息,而不是每个成员。因此,在我的输出中,整个成员及其在数据库中的详细信息都会显示出来。如何从两个关系表中仅显示一个帐户?我知道我的sql有问题

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT member.*, account.*
FROM member, account
WHERE member.mem_id = account.mem_id';

mysql_select_db('databasename');
$retval = mysql_query( $sql, $conn ); 
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "Account Number:{$row['Account_Number']}  <br> ".
 "First Name: {$row['fname']} <br> ".
 "Last Name: {$row['lname']} <br> ".
 "Address: {$row['address']} <br> ".
 "Contact: {$row['contact']} <br> ".
 "Share Capital: {$row['Share_Capital']} <br> ".
 "Regular Savings: {$row['Regular_Savings']} <br> ".
 "Power Savings: {$row['Power_Savings']} <br> ".
 "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

要仅返回1个帐户,请尝试

“选择成员。*,帐户。*
来自成员内部加入帐户
on member.mem_id=account.mem_id limit 1'

但是,要检索memberid的成员和帐户,查询需要更改为在mem_id上包含where谓词。例如:

    $member_id = 'some memberid'
    'SELECT member.*, account.*
    FROM member inner join account
    on member.mem_id = account.mem_id 
    where member.mem_id = $member_id';

要仅返回1个帐户,请尝试

“选择成员。*,帐户。*
来自成员内部加入帐户
on member.mem_id=account.mem_id limit 1'

但是,要检索memberid的成员和帐户,查询需要更改为在mem_id上包含where谓词。例如:

    $member_id = 'some memberid'
    'SELECT member.*, account.*
    FROM member inner join account
    on member.mem_id = account.mem_id 
    where member.mem_id = $member_id';

您正在比较相同的ID:“WHERE member.mem_ID=account.mem_ID”(我假设member.mem_ID和account.mem_ID引用相同的“用户”)

你应该这样做:

$query = "SELECT member.*, account.*
FROM member, account
WHERE member.mem_id = " . $the_id;
其中$the_id应该是从表单(为了澄清,是HTML表单)中获取的数字


希望有帮助:)

您正在比较相同的ID:“WHERE member.mem_ID=account.mem_ID”(我假设member.mem_ID和account.mem_ID引用相同的“用户”)

你应该这样做:

$query = "SELECT member.*, account.*
FROM member, account
WHERE member.mem_id = " . $the_id;
其中$the_id应该是从表单(为了澄清,是HTML表单)中获取的数字


希望有帮助:)

如果您没有选择正确的答案,我怀疑您可能手头有数据问题。但假设您的记录真的是1比1,那么这肯定会做到:

注意,我在顶部添加了$find_id作为参数

<?php


    $dbhost     = 'localhost';
    $dbuser     = 'root';
    $dbpass     = 'password';
    $find_id    = 12;

    try
    {

        $conn = mysql_connect($dbhost, $dbuser, $dbpass);   
        if( !$conn )
            throw new Exception( "Couldn't establish a connection" );

        if( !mysql_select_db('databasename', $conn )  )
            throw new Exception( "Database couldn't be selected" );

        $sql = 'SELECT M.*, A.* FROM member M LEFT JOIN account A ON M.mem_id = A.mem_id
                WHERE M.mem_id = $find_id';

        if( !($retval = mysql_query( $sql, $conn )) )
            throw new Exception( "No matching result, or query was borked; " . mysql_error() );

        if( !($row = mysql_fetch_assoc( $retval )) )
            throw new Exception( "No rows found, move along." );

        print_r( $row );
    }
    catch( Exception $x )
    {
        echo "An exception occurred: " . $x->getMessage();
    }

如果您没有选择任何人的答案正确,我怀疑您可能手头有数据问题。但假设您的记录真的是1比1,那么这肯定会做到:

注意,我在顶部添加了$find_id作为参数

<?php


    $dbhost     = 'localhost';
    $dbuser     = 'root';
    $dbpass     = 'password';
    $find_id    = 12;

    try
    {

        $conn = mysql_connect($dbhost, $dbuser, $dbpass);   
        if( !$conn )
            throw new Exception( "Couldn't establish a connection" );

        if( !mysql_select_db('databasename', $conn )  )
            throw new Exception( "Database couldn't be selected" );

        $sql = 'SELECT M.*, A.* FROM member M LEFT JOIN account A ON M.mem_id = A.mem_id
                WHERE M.mem_id = $find_id';

        if( !($retval = mysql_query( $sql, $conn )) )
            throw new Exception( "No matching result, or query was borked; " . mysql_error() );

        if( !($row = mysql_fetch_assoc( $retval )) )
            throw new Exception( "No rows found, move along." );

        print_r( $row );
    }
    catch( Exception $x )
    {
        echo "An exception occurred: " . $x->getMessage();
    }

member.mem\u id=account.mem\u id是1:1吗?是的,member.mem\u id=account.mem\u id你还需要帮忙吗?如果是这样,请从两个表中添加一些示例行,以及您希望的输出是什么?您得到了空白输出,下面的user1533577的答案似乎很接近。可能指向数据问题。干杯是的,我仍然需要帮助。为了数据的安全性,我只显示了一个空白输出,但我只想显示我查询的帐户。当会员登录时,他/她输入自己的帐号和密码。当他/她自动输入时,将显示其帐户详细信息。member.mem_id=Account.mem_id 1:1吗?是的,member.mem_id=Account.mem_id您还需要帮忙吗?如果是这样,请从两个表中添加一些示例行,以及您希望的输出是什么?您得到了空白输出,下面的user1533577的答案似乎很接近。可能指向数据问题。干杯是的,我仍然需要帮助。为了数据的安全性,我只显示了一个空白输出,但我只想显示我查询的帐户。当会员登录时,他/她输入自己的帐号和密码。当他/她自动输入其帐户详细信息时,将显示“从member.mem_id=Account.mem_id limit 1上的成员内部加入帐户中选择成员。*,帐户。*”;帮助,但它只显示数据库中的第一个帐户。好的,那么我建议您使用第二种方法。你需要弄清楚mem_id。。。或者使用fname和lname。例如,从member.mem_id=account.mem_id上的成员内部加入帐户中选择member.*,account.*,其中member.fname='Bob'和member.lname='Smith''从member.mem_id=account.mem_id limit 1'上的成员内部加入帐户中选择member.*,account.*;帮助,但它只显示数据库中的第一个帐户。好的,那么我建议您使用第二种方法。你需要弄清楚mem_id。。。或者使用fname和lname。例如,从member.mem_id=account.mem_id上的成员内部加入帐户中选择member.*、account.*,其中member.fname='Bob'和member.lname='Smith'谢谢,现在我可以问一下如何在我的登录页面上放置代码,以便在我查询时它将显示在我的成员页面上吗?谢谢,现在我可以问一下,如何在我的登录页面上添加代码,以便在我查询时,它将显示在我的会员页面上?