0

2つのテーブルがあります。以下の注文テーブルコードからクレジットテーブルの各IDの注文を取得できるようにしたいと思います。

$downlinequery = "SELECT recid, Level, sp1 FROM credit 
                  WHERE sp1 = '$id' or sp2 = '$id' or sp3 = '$id' or sp4 = '$id' 
                  or sp5 = '$id' or sp6 = '$id' or sp7 = '$id' or sp8 = '$id'" ; 
$downlineresult = mysql_query($downlinequery) ;
while ($downlinerow = mysql_fetch_array($downlineresult)) {
  extract($downlinerow) ;
  $orderquery = "SELECT date,cc,cop FROM order WHERE userid='1127'" ;
  $orderresult = mysql_query($orderquery) or die("unable to get orders");
  while($orderrow = mysql_fetch_array($orderresult)){
    extract($orderrow);
    echo "$date,$cc,$cop" ;
  }
}

しかし、私はエラーを受け取り続けます:注文を取得できません

別の実行中にクエリを実行することは可能ですか?

4

2 に答える 2

2

"ORDER" はMySQL の予約語であるため、エラーが発生した可能性があります。バックティックでエスケープする必要があります。

$orderquery = "SELECT date,cc,cop FROM `order` WHERE userid=1127" ;

「日付」についても同じである必要がありますが、それは許容されています(リンクした同じページのさらに下を参照)

あなたの質問に関しては、もちろん、ループ内でクエリを実行できます (ただし、パフォーマンスの点では最高ではありません)。ただし、テーブルに foreing キーがある場合 ('recid' と 'userid' だと思います)、代わりに JOINed クエリを作成できます。

于 2012-12-23T12:45:11.690 に答える
1

あなたの実際の質問に対して:私はその質問が正しいとは思いません。最初のクエリは実行されていません。実行され、結果が$ downlineresult(mysql_query)に入力された後、結果の一部(mysql_fetch_array)を反復処理しているだけです。

MySQLクエリにエラーがあるようですので、次を使用する必要があります。

echo mysql_error(); 

使用する方法の説明を参照してください。

于 2012-12-23T12:35:05.273 に答える