2012-02-24 16 views
1

まず最初にiveが自分自身を何時間も修正しようとしましたが、答えを見つけようと努力しました。大いに感謝し、大学のために! :)別のステートメントでPHP mysql selectステートメントのデータを正しく使用する方法

誰かがログインページにIDを入力すると、私は "custID"のセッション変数を保存しています。 私のmysqlデータベースでは、顧客テーブルに "custID"と "clientID"という行があります。私がしたいのは、その顧客IDにリンクされているクライアントIDを使用して、そのクライアントの詳細をテーブルに表示することです(clientCompanyは "clientID"を持つ別のテーブルです。 $ refclientが動作しているようです。私は結果をエコーし​​、私に欲しかった "2001"をくれました。

$refclient = mysql_query("SELECT clientID FROM Customer WHERE custID='$_SESSION[custID]'"); 

echo mysql_result($refclient, 0); // outputs "2001" which is the client ID. this works 

ただし、where句の$ client文でその数値を使用したいとします。

$client = mysql_query("SELECT * FROM clientCompany WHERE clientID = '$refclient'"); 

カントー作業このありえないが..私は、$ refclientは、「リソースID#」を与えることを理解しますがどのように私はその数句が効果的に「WHEREクライアントID = 2001」と言うところそれほどに変換できますか?私は文を結合を使用する方法を知らない(noobのイム!) 私はそのテーブルからデータをgettngない厥示して迅速なカウント機能をしました(それはサーバOKに接続されています)

$count2=mysql_num_rows($client); 
if($count2==1) 
{ 
    echo "working"; // 1 row is all that it should create 
} 
else 
{ 
    echo "not working"; //this is what always shows 
} 

私はいくつかを持っています私の質問を短くするためにここに残したテーブルヘッダー。すべての文場合、テーブルは、すべての括弧を閉じ、そのようなものをうまく動作:)

ここで出力されるべきものである。

基本的に
while($row = mysql_fetch_array($client)) 
{ 
echo "<tr>"; 
echo "<td>" .$row['clientID']. "</td>"; 
echo "<td>" .$row['compName']. "</td>"; 
echo "<td>" .$row['compAddress']. "</td>"; 
echo "<td>" .$row['contactPersonForCompany']. "</td>"; 
echo "<td>" .$row['compEmail']. "</td>"; 
echo "<td>" .$row['compPhoneNum']. "</td>"; 
echo "</tr>"; 
} 

私は私の「$に「$のrefclient」の代わりに何を使用する必要がありますクライアント "select文? '$ refclient'の代わりに '2001'と入力すると完全に動作しますが、明らかに私はそれをcustIDにリンクさせる必要があります。また、顧客はそれ/ストアがセッション変数である..私は入力にそれらを得るカントので、クライアントIDを知っているカント

$client = mysql_query("SELECT * FROM clientCompany WHERE clientID = '$refclient'"); 

ある質問のエッセイ試合申し訳ありませんPS!私は=できるだけ多くの詳細を与えるようにしたい)事前に感謝!

答えて

1

あなたがそうのような変数に値を保存する必要があります。

$refclient = mysql_query("SELECT clientID FROM Customer WHERE custID='$_SESSION[custID]'"); 
$client_num = mysql_result($refclient, 0); 
$client = mysql_query("SELECT * FROM clientCompany WHERE clientID = '$client_num'"); 
+0

本当にありがとうございました:

$refclient = mysql_query("SELECT clientID FROM Customer WHERE custID='{$_SESSION['custID']}'"); $numeric_refclient = mysql_result($refclient, 0); $client = mysql_query("SELECT * FROM clientCompany WHERE clientID = '$numeric_refclient'"); 

しかし、これはまた、1つのステップで参加するか、サブクエリで行うことができます:あなたは2番目のクエリにそれを数値に結果を変換して渡す必要がありますこれは完璧に働いた!! – Alan006

1
SELECT clientCompany.* FROM Customer, clientCompany WHERE clientCompany.ClientID = Customer.ClientID AND Customer.custID = "jim" 

これは、それはCUSTIDはあなたがそれを設定したものに等しいレコード顧客からクライアントIDに等しいclientCompanyからすべてを選択する必要があります。

0

あなたはとても近くです。

$client = mysql_query(
    "SELECT * FROM clientCompany WHERE 
     clientID IN (
     SELECT clientID FROM Customer WHERE custID='{$_SESSION[custID]}' 
    )" 
); 
+0

答えに感謝します!彼らがこの通知を示した小さなもの: Notice:定義されていない定数custIDの使用 - 「custID」と仮定した それは単純に中括弧のためであった。私はそれらを取り出し、両方の答えがうまくいった!ありがとうございました – Alan006

+0

ええ、 '{$ _SESSION ['custID']}' '{$ _SESSION [custID]}' ...だったはずです。PHPの文字列に配列要素を含めるときは、中括弧で囲みます。ここで「複雑な構文」のセクションをチェックしてください:http://php.net/manual/en/language.types.string.php –

関連する問題