2016-07-06 6 views
-1

可能です。動的な行数を返すMySQLクエリがあります。2番目のクエリの最初のクエリの結果を使用するMySQL

私がしたいことは、返された行の結果を別のクエリの列名として使用することです。

例:最初のクエリから

結果: SeqID4901 SeqID4902 SeqID4903

通常2番目のクエリ:最初のクエリの

mysql_select_db($database_Hp, $conn); 
$query_Lookup_Hist = sprintf("SELECT * FROM Hist WHERE HeadID = %s", GetSQLValueString($colname_Hist, "text")); 
$Lookup_Hist = mysql_query($query_Lookup_Hist , $conn) or die(mysql_error()); 
$row_Lookup_Hist = mysql_fetch_assoc($Lookup_Hist); 

使用して結果

mysql_select_db($database_Hp, $conn); 
$query_Lookup_Hist = sprintf("SELECT SeqID4901, SeqID4902, SeqID4903 FROM Hist WHERE HeadID = %s", GetSQLValueString($colname_Hist, "text")); 
$Lookup_Hist = mysql_query($query_Lookup_Hist , $conn) or die(mysql_error()); 
$row_Lookup_Hist = mysql_fetch_assoc($Lookup_Hist); 

私が言うように、これは可能で、どこから始めるのですか?

あなたの時間のために、多くのトランクが事前にあります。

+2

** WARNING **:/:あなただけのPHPを学習している場合は、[ 'mysql_query'](HTTPを使用しないでください/php.net/manual/en/function.mysql-query.php)インターフェイス。それはPHP 7で削除されたのでとてもひどいと危険です。[PDOのようなものは学ぶのが難しくない](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)と[PHP The Right Way](http://www.phptherightway.com/)のようなガイドがベストプラクティスを説明しています。 sprintfを使用してエスケープすると、エラーが発生しやすくなります。プレースホルダ値を持つプリペアドステートメントははるかに安全です。 – tadman

+0

このサイトのすべてのmysql_ *コンテンツを削除した場合は、これよりはるかに少ないかもしれません。 – Drew

+0

@Drew、あなたの意志は何ですか? \t このサイトのすべてのmysql_ *私たちはこれよりずっと少ないかもしれません " – DCJones

答えて

1

あなたが作るこの使用してちょうど1クエリたくない場合は、次の

$columns = array(); 
$query = mysql_query("select column_with_column_names from your_table"); 
while($res = mysql_fetch_assoc($query)) 
    $columns [] = $res['model']; 

$result = mysql_query("SELECT ".implode(",",$columns)." FROM your_other_table"); 
+0

これはかなり面倒なやり方です。なぜサブクエリではないのですか? – tadman

+0

@Arivan Bastos、ありがとう、完璧です。 P.S.私は次の4ヶ月以内にPDOの使用に移ります。 – DCJones

関連する問題