ホームページ >バックエンド開発 >PHPチュートリアル >PHP ステートメントは MYSQL 内の複数のテーブルをクエリし、ページに表示します。
PHP ステートメントを使用して複数のテーブルをクエリします。テーブルのフィールドは同じですが、テーブル名は異なります。例: b ABC201202、ABC201203、ABC201204 ... テーブル名は月次テーブルに基づいて構築されています。一度に複数のテーブルを走査して MySQL でデータを抽出する方法がわかりません。
ディスカッションへの返信(解決策)
データを複数回取得して処理してみましょう。もう一度
PHP コード
$table = array("abc201202","abc201203","abc201204");
$result =array()
foreach($table as $table_name) {
$sql = "select * from ". $ table_name;
$rec =mysql_query($sql);
このようにして取り出したデータはページングできませんか?
$table = array("abc201202","abc201203","abc201204");
$result =array()
foreach($table as $table_name) {
$sql = "select * from ".$table_name;
" $rec =mysql_query($sql);
......
これを行うことでデータを走査することもできますが、データをページ分割することはできません。
$table = array("abc201202","abc201203","abc201204");$result =array();foreach($table as $table_name) { $sql = "select * from ".$table_name; $rec =mysql_query($sql); while($row=mysql_fetch_row($rec)) { $result[] = $row; }}
$select = array();$table = array("abc201202","abc201203","abc201204");foreach($table as $v) { $select[] = "(select * from $v)";}$sql = join(' UNION ', $select);$res = mysql_query($sql);
PHP コード
$table = array("abc201202","abc201203","abc201204")
$count = count($table); ;
for ($i=0;$i $sql = $sql." select * from '".$table[$i]."' Union all";
}
$s… …
コードを試しました、echo $sql; 出力は次のとおりです: select * from 'abc201202' Union all select * from 'abc201203' Union all select * from 'abc201204' Union all select * from ''
Me 変更後出力は次のようになります: select * from twebmailaction_201208 Union all select * from twebmailaction_201209 Union all select * from twebmailaction_201210 Union all
$select = array();
$table = array("abc201202","abc201203","abc201204");
foreach($table as $v) {
$select[ ] = "(select * from $v)";
$sql = join(' UNION ', $select);
$res = mysql_query...
いくつかのテーブルをクエリできます。データ項目の合計は正しいです。
しかし、何が起こっているのかわかりません。データ フレームが表示され、ページングが正しいように見えますが、データベース フィールドの内容がありません
$table = array("abc201202","abc201203","abc201204");$result=array();$count = count($table);for ($i=0;$i<$count;$i++){ $sql = $sql." select * from '".$table[$i]."' union all";}$sql=$sql." select * from '".$table[$count]."'";$rec =mysql_query($sql); while($row=mysql_fetch_row($rec)) { $result[] = $row; }
$table = array("abc201202","abc201203","abc201204")
$count = count($table); -1;//配列の添え字for ($i=0;$i<$count;$i++){
$sql = $sql." select * from '".$table[$i]" を減算します。ユニオ…
もう大丈夫です。まだいくつか問題があります:
1. ページングにいくつかの問題があるようです: $sql=$sql." select * from '".$table[$count]."'"." limit $page $pagesize" ; ページングのために、制限を追加しました。これは正しい追加ですか? 历遍路 2、トラバーサル サイクルを変更し、フィールドの値を表示するクエリを変更しました:
while ($ row = MySQL_FETCH_Row ($ Row)) {
echo "& lt; & lt; & gt;"。ユーザー名];
出力には直線が多く、フィールド値はありませんか?
制限 $page $pagesize を制限 $page に変更してください。$pagesize を試してください
制限 $page $pagesize を制限 $page に変更してください。$pagesize を試してください
これは問題ではありません。以前に次のステートメントがありました: $page.=',';
$select = array();
$table = array("abc201202","abc201203","abc201204");
foreach($table as $v) {
$select[ ] = "(select * from $v)";
$sql = join(' UNION ', $select);
$res = mysql_query...
唯一欠けているのは、指定されたフィールドの表示の実装です!指定されたフィールドを走査する方法がわかりません。たとえば、 while ($ row = (MySQL_FETCH_ROW ($ Res)) {
$ select = Array ( );
$table = array("abc201202","abc201203","abc201204");
foreach($table as $v) {
$select[] = "($v から * を選択)";
$sql = join(' UNION ', $select);
$res = mysql_query...