*MySQL は後でアップグレードされます。
序文: 著者は 2 つの言語で登録できますが、さまざまな追加の理由により、2 つのデータベースが必要になります。複数のデータベースを使用するとセットアップが奇妙に見えることは認識していますが、そう思われるのはこの簡略化された説明です。ですから、その奇妙なことは無視してください。
状況: 私の最初のクエリは、サブスクリプションをキャンセルした著者のレコードセットを生成します。最初のデータベースでそれらを見つけます。
require_once('ConnString/FirstAuth.php');
mysql_select_db($xxxxx, $xxxxxx);
$query_Recordset1 = "SELECT auth_email FROM Authors WHERE Cancel = 'Cancel'";
$Recordset1 = mysql_query($query_Recordset1, $xxxxxx) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
それらもリストされている2番目のデータベース(テーブルと列の名前は同じです)では、キャンセルされたので更新したいと思います。更新するレコードを選択するには、最初のレコードセットを取得して配列に入れ、connStrings を交換してから、その配列を使用して検索します。
これらも機能します。
$results = array();
do {
results[] = $row_Recordset1;
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
print_r($results);
配列をくれます。配列 ( [0] => 配列 ( [auth_email] => renault@autxxx.com ) [1] => 配列 ( [auth_email] => rinaldi@autxxx.com ) [2] => 配列 ( [auth_email] => hemingway@autxxx.com )) ...つまり、最初のデータセットを見つけていることがわかります。
ここに問題があります: 2 番目のデータベースのクエリは、$results 配列に 'IN' である場合、auth_email によって作成者を検索しますが、2 番目のデータベースの作成者が期待どおりに見つかりません。異なる connString に注意してください
require_once('ConnString/SecondAuth.php');
mysql_select_db($xxxxx, $xxxxxx);
$query_Recordset2 = "SELECT auth_email FROM Authors WHERE auth_email IN('$results')";
$Recordset2 = mysql_query($query_Recordset2, $xxxxxx) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
var_dump は 0 ですが、見つかるはずのレコードが 2 つあることがわかっています。{$results} のような IN のさまざまな組み合わせを試しましたが、"'$results'" にたどり着いたとき、助けを求める時が来ました。利用可能なすべての投稿を確認しましたが、問題を解決するものはありませんでしたが、野生のガチョウの個体数に慣れてきました。
接続文字列を交換したので、おそらく $result が null になったので、元の connString に再設定しましたが、同じデータベースの $results に auth_email が見つからなかったと思いました。
さらに、前に connStrings を交換して肯定的な結果を得たので...うーん...
作業中の私の目標は、2番目のデータベースでレコードを更新できるようにする do/while ループを使用して、Recordset2 をフォームにエコーすることです。var_dump が 0 であるため、明らかに、これは $results 配列に電子メール アドレスが表示される 2 番目のテーブルの作成者のリストを示していませんが、ページでフォームを開始するために使用したいものの例として含めています。 .
do {
$row_Recordset2['auth_email_addr '];
} while($row_Recordset2 = mysql_fetch_assoc($Recordset2));
いつものように、あなたが与えることができるポインタは高く評価され、正しい答えは受け入れられます.