0

このコードが実行され、リレーショナル テーブルが表示されます。

<?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);
?>

これが出力です。

口座番号: 名:
姓:
住所: 連絡先: 資本金: 普通預金:

省電力:

口座番号: 名: 姓: 住所: 連絡先: 資本金: 普通預金:

省電力:

データを正常に取得しました

ここで、2 つのリレーショナル テーブルから 1 つのアカウントのみを表示したいと考えています。たとえば、アカウント番号を照会して入力すると、すべてのメンバーではなく、アカウントの詳細のみが表示されます。したがって、私の出力では、データベース内のメンバー全体とその詳細が表示されます。2 つのリレーショナル テーブルから 1 つのアカウントだけを表示するにはどうすればよいですか。

4

2 に答える 2

0

このように where 条件を拡張できます。例として $memid = 1 を指定しました。$memid を POST または GET またはその他の値として渡すことができます。

$memid = 1; // example
$sql = "SELECT member.*, account.* FROM member, account WHERE member.mem_id = account.mem_id AND member.mem_id = '".$memid."' ";

これはあなたを助けるかもしれません

于 2013-08-07T08:05:12.313 に答える
0

照会するアカウント番号でフィルタリングするように SQL を更新する必要があります。

$sql = 'SELECT member.*, account.*
FROM member, account
WHERE member.mem_id = account.mem_id WHERE account.mem_id = '.intval($_GET['mem_id');

注: これは簡単な例にすぎません。SQL ステートメントを作成するためのより良い方法が必要になる場合があります。

于 2013-08-07T08:06:23.430 に答える