約 3,764,891 件
https://w.atwiki.jp/macdemysql6/
Mac de MySQL6 MacOS X にMySQL6αをソースファイルから構築し、いろいろな実験を行いつつ、最終目標としてデータ(ファイル等)のストレージとしてRDBを多角的に使い、なおかつ自分のITスキルも向上させようという魂胆です。 大雑把なところとしては、DBを構築し、BLOBにファイルを格納しつつ関係する情報をレコードに持たせ、RDBの検索機能等を使って自分が使いやすいようにDB環境を構築します。 @wikiへようこそ ウィキはみんなで気軽にホームページ編集できるツールです。 このページは自由に編集することができます。 メールで送られてきたパスワードを用いてログインすることで、各種変更(サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等)することができます まずはこちらをご覧ください。 @wikiの基本操作 用途別のオススメ機能紹介 @wikiの設定/管理 分からないことは? @wiki ご利用ガイド よくある質問 無料で会員登録できるSNS内の@wiki助け合いコミュニティ @wiki更新情報 @wikiへのお問合せフォーム 等をご活用ください @wiki助け合いコミュニティの掲示板スレッド一覧 #atfb_bbs_list その他お勧めサービスについて 大容量1G、PHP/CGI、MySQL、FTPが使える無料ホームページは@PAGES 無料ブログ作成は@WORDをご利用ください 2ch型の無料掲示板は@chsをご利用ください フォーラム型の無料掲示板は@bbをご利用ください お絵かき掲示板は@paintをご利用ください その他の無料掲示板は@bbsをご利用ください 無料ソーシャルプロフィールサービス @flabo(アットフラボ) おすすめ機能 気になるニュースをチェック 関連するブログ一覧を表示 その他にもいろいろな機能満載!! @wikiプラグイン @wiki便利ツール @wiki構文 @wikiプラグイン一覧 まとめサイト作成支援ツール バグ・不具合を見つけたら? 要望がある場合は? お手数ですが、メールでお問い合わせください。
https://w.atwiki.jp/granblue/pages/25.html
MySQL5.5のインストール 2011年11月時点では標準のリポジトリではMySQLもPHPも古いやつしかインストールできないので リポジトリをインストールする必要がある。 rpm -ivh http //download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -ivh http //rpms.famillecollet.com/enterprise/remi-release-5.rpm yum --enablerepo=remi,eplp install mysql-server PHP5.3のインストール PHP5.3もさっきインストールしたリポジトリを使う。 yum --enablerepo=remi install php yum --enablerepo=remi install php-mysql yum --enablerepo=remi install php-devel yum --enablerepo=remi install libmcrypt-devel これもいるのかな? yum --enablerepo=remi install php-mcrypt なお、標準でないリポジトリからインストールしてるので、今後PHP関連か、もしかしたらそれ以外でも yumでインストールする場合、--enablerepo=remiをつけてこのリポジトリから更新するようにしないと 問題が出る場合がある。 [追記]これもいるんじゃね? php-mbstring 参考にしたサイト http //d.hatena.ne.jp/hrendoh/20110630/1309418113
https://w.atwiki.jp/sanosoft/pages/202.html
MySQL8.0のインストール【AlmaLinux 8】 MySQL8.0をインストールします。 1. インストール dnfのリポジトリの追加登録方法【CentOS 8】で「MySQL」のリポジトリを追加して、MySQLの8.0をインストールします。 # dnf --disablerepo=appstream --enablerepo=mysql80-community install mysql-community-server 2. MySQLの設定 (1) DBの初期化 DBの初期化を行います。 # mysqld --initialize --user=mysql --datadir=/var/lib/mysql ※5.6までは「mysql_install_db」コマンドで行いましたが、5.7からは変更になりました。 このコマンドで初期化を行うと、初期ユーザとして「root@localhost」が作成されます。 また、初期パスワードが「/var/log/mysqld.log」に書き込まれます。 ちなみに「mysqld --initialize-insecure」とすると、パスワードは空となります。 (2) /etc/my.cnfの設定 MySQLの設定ファイルは、「/etc/my.cnf」ですが、カスタム設定は「/etc/my.cnf.d」フォルダに「*.cnf」ファイルを作成することで設定を追加できます。 # vi /etc/my.cnf.d/server.cnf [mysqld] innodb_data_home_dir = /var/lib/mysql/ innodb_log_group_home_dir = /var/lib/mysql/ character_set_server=utf8mb4 collation-server=utf8mb4_0900_ai_ci expire_logs_days = 30 # Error log log_error="mysqld.log" log_warnings=1 # Query log general_log = 0 general_log_file="sql.log" # Slow Query log slow_query_log = 0 slow_query_log_file="slow_query.log" log_queries_not_using_indexes log_slow_admin_statements long_query_time=5 [client] default-character-set=utf8mb4 general_log:「0」:ログを出力しない、「1」:ログを出力する slow_query_log:「0」:ログを出力しない、「1」:ログを出力する ※「Query log」や「Slow Query log」を有効にすると、ファイルサイズがかなり大きくなる可能性がありますので、必要時のみ有効にして下さい。 ■collation-server utf8mb4_0900_ai_ci (MySQL 8.0のデフォルト)。アクセントの違い(「は」と「ぱ」など)および大文字・小文字を区別しない。 utf8mb4_bin 大文字・小文字を含めて、すべて区別。 utf8mb4_general_ci 大文字・小文字は区別しない。他は全て区別。 utf8mb4_unicode_ci 大文字・小文字および全角・半角を区別しない。 (3) MySQLの起動 設定が完了したら、MySQLのサービスを起動します。 # systemctl start mysqld.service (4) 自動起動設定 サーバを再起動した場合に自動的にサービスが起動するようにします。 # systemctl enable mysqld.service (5) mysql_secure_installationの実行 MySQLのセキュリティを向上させるために「mysql_secure_installation」を実行します。 # /usr/bin/mysql_secure_installation MySQLのセキュリティを向上させるために「mysql_secure_installation」を実行します。 # /usr/bin/mysql_secure_installation ■現在のrootパスワードの入力 現在のrootのパスワードを入力します。 Enter current password for root (enter for none) インストール時に「/var/log/mysqld.log」に記載されている初期パスワードを入力します。 ■新しいパスワードの登録 初期パスワードから新しいパスワードに変更します。 The existing password for the user account root has expired. Please set a new password. New password Re-enter new password 「New password 」と「Re-enter new password 」に任意のパスワードを入力します。 ■VALIDATE PASSWORD プラグインのインストール パスワードがポリシーに従っているかのチェックを行うプラグインです。 VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No プラグインをインストールしないので「No」を入力します。 ■rootパスワードの変更 rootパスワードを変更するかどうかの質問です。 Using existing password for root. Change the password for root ? ((Press y|Y for Yes, any other key for No) ここでは変更しないので「N」を入力します。 ■匿名アカウントの削除 パスワードのない匿名アカウントを削除するかどうかの質問です。 Remove anonymous users? (Press y|Y for Yes, any other key for No) 削除するので「Y」を入力します。 ■rootアカウントのリモートログインの不許可 Disallow root login remotely? (Press y|Y for Yes, any other key for No) rootアカウントのリモートログインは許可しないので、「Y」と入力します。 ■testデータベースの削除 どのユーザからでもアクセスできるtestデータベースを削除するかどうかの質問です。 Remove test database and access to it? (Press y|Y for Yes, any other key for No) 削除するので「Y」を入力します。 ■特権テーブルのリロード すぐに特権テーブルをリロードして反映させるかどうかの質問です。 Reload privilege tables now? (Press y|Y for Yes, any other key for No) すぐにリロードするので「Y」を入力します。 3. rootパスワードの変更 インストール直後は、「root」ユーザにテンポラリーパスワードが設定されているので、パスワードを変更します。 ※前述の「mysql_secure_installation」を実行した場合には不要です。 MySQLにログインします。 # mysql -u root -p Enter password パスワードを変更します。 mysql SET PASSWORD FOR root@localhost= xxxxxx ; mysql exit; ※従来の「SET PASSWORD FOR root@localhost=PASSWORD( xxxxxx );」だとSyntaxエラーが発生します。 変更したパスワードでログインできることを確認します。 # mysql -u root -p Enter password ログインできればOKです。 4. その他のコマンド (1) ユーザ作成 CREATE USER (ユーザID) @ localhost IDENTIFIED WITH mysql_native_password BY (パスワード) ; GRANT ALL PRIVILEGES ON (テーブル名).* TO (ユーザID) @ localhost ; ※※【注意事項】※※ 「my.cnf」で「skip-name-resolve」を指定している場合には、ホストの名前解決ができないため「localhost」ではエラーとなる。その場合には「127.0.0.1」と記述すること。 5. cronでの実行の場合 定期バックアップなどでコマンドラインからMySQLを実行する場合に、パスワードをコマンドラインに含めると警告が発生しますし、またセキュリティ上問題があります。 そこで、設定ファイルを作成して、コマンドラインから読込みます。 (1) 設定ファイルの作成 「/etc/.mysql_config」という設定ファイルを作成します。 # vi /root/.mysql_config 内容は以下の通りです。 [client] user = root password = (パスワード) host = localhost 「root」以外読めないようにします。 # chmod 400 /root/.mysql_config (2) コマンドラインでの実行 「--defaults-extra-file」オプションで設定ファイルを読み込みます。 【例】 for DBNAME in `ls -p /var/lib/mysql | grep / | tr -d /` do # mysqldump if [ "$DBNAME" = #innodb_temp ] then continue; fi if [ "$DBNAME" = performance_schema ] then /usr/bin/mysqldump --defaults-extra-file=/root/.mysql_config --skip-lock-tables --skip-extended-insert $DBNAME $DBNAME.dump else /usr/bin/mysqldump --defaults-extra-file=/root/.mysql_config --events --skip-lock-tables --skip-extended-insert $DBNAME $DBNAME.dump fi done 6. MySQLのコマンド (1) mysqldump ■データベースを出力 mysqldump --defaults-extra-file=/root/.mysql_config -c -skip-extended-insert (DB名) (出力ファイル名) ■テーブルを指定して出力 mysqldump --defaults-extra-file=/root/.mysql_config -c -skip-extended-insert (DB名) (テーブル名) (出力ファイル名) (2) mysql ■ダンプファイルをインポート mysql --defaults-extra-file=/root/.mysql_config (DB名) (ダンプファイル名)
https://w.atwiki.jp/suffix/pages/971.html
トランザクションのバイナリログはmysqlbinlog等で見れる。障害発生時のログからの復旧等に使える。 トランザクションの更新を止める手立てだが、 FLUSH WITH READ LOCK: SET GLOBAL READ ONLY: アプリケーションからユーザーをDROP 等がある。 mysql構文:http //dev.mysql.com/doc/refman/5.1/ja/sql-syntax.html
https://w.atwiki.jp/nicepaper/pages/114.html
PHPでプログラムを書いていると、時々「あれ、なんて打つんだっけ?」と戸惑うことがあります。そんな中で覚書しておきます。MySQLでよく使うコマンド一覧についてまとめていきたいと思います。6月30日記事 目次 PHP側でよく使うコマンド SELECT INSERT UPDATE MySQL側でよく使うコマンド PHP側でよく使うコマンド SELECT SELECT データを取得する アスタリスク(*)があるとカラム全部を取得する。 SELECT * FROM テーブル名 WHIERE カラム名1 = 値 ; カラム名1の値が値1の場合のidとcolumn1とcolumn2のフィールドを取得する。 SELECT (id,column1,column2) FROM テーブル名 WHIERE カラム名1 = 値1 ; INSERT INSERT フィールドを挿入する フィールドを挿入する。 INSERT INTO テーブル名 (カラム名1,カラム名2,カラム3) VALUES( 値1 , 値2 , 値3 ); UPDATE UPDATE データを更新する フィールドの値を更新する。 UPDATE テーブル名 SET カラム名1= 値1 ,カラム名2= 値2 WHERE カラム名3 = 値3 ; MySQL側でよく使うコマンド CREATE DATABASE データベース名; データベースを作る DROP DATABASE データベース名; データベースを削除する SHOW DATABASES; データベース一覧表示 USE データベース名; データベースを使用する DROP TABLE テーブル名; テーブルの削除 DESC テーブル名; テーブルの詳細表示 DELETE FROM テーブル名 フィールドデータを削除する。 CREATE TABLE データベース名.テーブル名(型の指定・・・) テーブルを作る
https://w.atwiki.jp/t100/pages/39.html
MySQLの初期セットアップ後に、設定しておきたい内容を記述します。 ●ユーザー認証 ・Anonymouseユーザーを無効にする 初期設定では、Anonymouseユーザーが許可されているケースがあるようです。 ユーザー名に何を指定しても、とりあえず接続できてしまう状態です。 参照できるのはtestデータベースのみですが、セキュリティホールの危険があるので削除しておくのがベターです。 以下、確認方法と削除方法です。 確認方法 mysqlコマンドのみで接続できてしまったら、Anonymouseユーザーが有効になっていると考えられます。 以下のSQLで、ユーザーテーブルの登録情報を確認する。(Userカラムが空文字 のレコードが、Anonymouseユーザー) SELECT * FROM mysql.user WHERE mysql.user.User = ; 削除方法 以下のSQLで、Anonymouseユーザーを削除することが出来ます。 DELETE FROM mysql.user WHERE mysql.user.User = ; DELETE FROM mysql.db WHERE mysql.db.User = ; FLUSH PRIVILEGES; 文字コード パフォーマンス
https://w.atwiki.jp/m_shige1979/pages/413.html
スーパーユーザーへ切替 su - サーバよりファイルをダウンロードして、ファイルを解凍する cd /home/weadmin/src tar zxvf mysql-6.0.6-alpha.tar.gz make、installを行う cd /home/weadmin/src/mysql-6.0.6-alpha ./configure \ --with-charset=utf8 \ --with-extra-charsets=all \ --with-mysqld-user=mysql \ --with-innodb \ --enable-local-infile \ --prefix=/usr/local/mysql \ --with-tcp-port=3306 \ --with-unix-socket-path=/tmp/mysql.sock make make install
https://w.atwiki.jp/th0901/pages/19.html
管理ノード手順 データディレクトリ作成 # mkdir /var/lib/mysql-cluster # chown mysql mysql /var/lib/mysql-cluster # chmod 750 /var/lib/mysql-cluster rpmインストール # rpm -ivh MySQL-Cluster-gpl-management-7.0.6-0.rhel4.x86_64.rpm # rpm -ivh MySQL-Cluster-gpl-tools-7.0.6-0.rhel4.x86_64.rpm config作成 # vi /var/lib/mysql-cluster/config.ini [ndbd default] NoOfReplicas= 2 MaxNoOfConcurrentOperations= 10000 DataMemory= 80M IndexMemory= 24M TimeBetweenWatchDogCheck= 30000 DataDir= /var/lib/mysql-cluster MaxNoOfOrderedIndexes= 512 [ndb_mgmd default] DataDir= /var/lib/mysql-cluster [ndb_mgmd] Id= 1 HostName= 192.168.100.98 [ndbd] Id= 2 HostName= 192.168.100.100 [ndbd] Id= 3 HostName= 192.168.100.101 [mysqld] Id = 4 HostName= 192.168.100.100 [mysqld] Id= 5 HostName= 192.168.100.101 # choose an unused port number # in this configuration 63132, 63133, and 63134 # will be used [tcp default] PortNumber= 63132 # chmod 644 /var/lib/mysql-cluster/config.ini # chown mysql mysql /var/lib/mysql-cluster/config.ini 管理ノード起動 # ndb_mgmd -f /var/lib/mysql-cluster/config.ini 2009-07-10 13 42 22 [MgmSrvr] INFO -- NDB Cluster Management Server. mysql-5.1.34 ndb-7.0.6 2009-07-10 13 42 22 [MgmSrvr] INFO -- The default config directory //mysql-cluster does not exist. Trying to create it... 2009-07-10 13 42 22 [MgmSrvr] INFO -- Sucessfully created config directory 2009-07-10 13 42 22 [MgmSrvr] INFO -- Reading cluster configuration from /var/lib/mysql-cluster/config.ini # ndb_mgm -e show Connected to Management Server at localhost 1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 (not connected, accepting connect from 192.168.100.100) id=3 (not connected, accepting connect from 192.168.100.101) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.100.98 (mysql-5.1.34 ndb-7.0.6) [mysqld(API)] 2 node(s) id=4 (not connected, accepting connect from 192.168.100.100) id=5 (not connected, accepting connect from 192.168.100.101) データノード手順 データディレクトリ作成 # mkdir /var/lib/mysql-cluster # chown mysql mysql /var/lib/mysql-cluster # chmod 750 /var/lib/mysql-cluster rpmインストール # rpm -ivh MySQL-Cluster-gpl-tools-7.0.6-0.rhel4.x86_64.rpm # rpm -ivh MySQL-Cluster-gpl-storage-7.0.6-0.rhel4.x86_64.rpm my.cnf編集 # vi /etc/my.cnf [mysql_cluster] ndb-connectstring = 192.168.100.98 ndbd起動(初回起動) # ndbd --initial 管理ノードで実行 # ndb_mgm -e show Connected to Management Server at localhost 1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @192.168.100.100 (mysql-5.1.34 ndb-7.0.6, starting, Nodegroup 0) id=3 @192.168.100.101 (mysql-5.1.34 ndb-7.0.6, starting, Nodegroup 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.100.98 (mysql-5.1.34 ndb-7.0.6) [mysqld(API)] 2 node(s) id=4 (not connected, accepting connect from 192.168.100.100) id=5 (not connected, accepting connect from 192.168.100.101) SQLノード手順 rpmインストール # rpm -ivh MySQL-Cluster-gpl-server-7.0.6-0.rhel4.x86_64.rpm # rpm -ivh MySQL-Cluster-gpl-client-7.0.6-0.rhel4.x86_64.rpm # rpm -ivh MySQL-Cluster-gpl-shared-7.0.6-0.rhel4.x86_64.rpm my.cnf編集 # vi /etc/my.cnf [mysqld] ndbcluster ndb-connectstring = 192.168.100.98 mysql起動 # mysql_install_db --user=mysql # /etc/init.d/mysql start 管理ノードで実行 # ndb_mgm -e show Connected to Management Server at localhost 1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @192.168.100.100 (mysql-5.1.34 ndb-7.0.6, Nodegroup 0, Master) id=3 @192.168.100.101 (mysql-5.1.34 ndb-7.0.6, Nodegroup 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.100.98 (mysql-5.1.34 ndb-7.0.6) [mysqld(API)] 2 node(s) id=4 @192.168.100.100 (mysql-5.1.34 ndb-7.0.6) id=5 @192.168.100.101 (mysql-5.1.34 ndb-7.0.6)
https://w.atwiki.jp/nicepaper/pages/245.html
MySQLの予約語のまとめと予約語を登録する場合について考えていきます。10月6日記事 目次 予約語とは 予約語一覧 それでも予約語を使いたい場合 SQL文 これはエラー これは通る まとめ 予約語とは ある特定の語は特別な扱いが必要になります。たとえばSELECTやWHEREなどよく使う語はカラム名やテーブル名として使用ができません。 予約語一覧 MySQL5.6では以下の語が予約されています。 ACCESSIBLE ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE CASE CHANGE CHAR CHARACTER CHECK COLLATE COLUMN CONDITION CONSTRAINT CONTINUE CONVERT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR DATABASE DATABASES DAY_HOUR DAY_MICROSECOND DAY_MINUTE DAY_SECOND DEC DECIMAL DECLARE DEFAULT DELAYED DELETE DESC DESCRIBE DETERMINISTIC DISTINCT DISTINCTROW DIV DOUBLE DROP DUAL EACH ELSE ELSEIF ENCLOSED ESCAPED EXISTS EXIT EXPLAIN FALSE FETCH FLOAT FLOAT4 FLOAT8 FOR FORCE FOREIGN FROM FULLTEXT GET GRANT GROUP HAVING HIGH_PRIORITY HOUR_MICROSECOND HOUR_MINUTE HOUR_SECOND IF IGNORE IN INDEX INFILE INNER INOUT INSENSITIVE INSERT INT INT1 INT2 INT3 INT4 INT8 INTEGER INTERVAL INTO IO_AFTER_GTIDS IO_BEFORE_GTIDS IS ITERATE JOIN KEY KEYS KILL LEADING LEAVE LEFT LIKE LIMIT LINEAR LINES LOAD LOCALTIME LOCALTIMESTAMP LOCK LONG LONGBLOB LONGTEXT LOOP LOW_PRIORITY MASTER_BIND MASTER_SSL_VERIFY_SERVER_CERT MATCH MAXVALUE MEDIUMBLOB MEDIUMINT MEDIUMTEXT MIDDLEINT MINUTE_MICROSECOND MINUTE_SECOND MOD MODIFIES NATURAL NO_WRITE_TO_BINLOG NOT NULL NUMERIC ON OPTIMIZE OPTION OPTIONALLY OR ORDER OUT OUTER OUTFILE PARTITION PRECISION PRIMARY PROCEDURE PURGE RANGE READ READ_WRITE READS REAL REFERENCES REGEXP RELEASE RENAME REPEAT REPLACE REQUIRE RESIGNAL RESTRICT RETURN REVOKE RIGHT RLIKE SCHEMA SCHEMAS SECOND_MICROSECOND SELECT SENSITIVE SEPARATOR SET SHOW SIGNAL SMALLINT SPATIAL SPECIFIC SQL SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT SQLEXCEPTION SQLSTATE SQLWARNING SSL STARTING STRAIGHT_JOIN TABLE TERMINATED THEN TINYBLOB TINYINT TINYTEXT TO TRAILING TRIGGER TRUE UNDO UNION UNIQUE UNLOCK UNSIGNED UPDATE USAGE USE USING UTC_DATE UTC_TIME UTC_TIMESTAMP VALUES VARBINARY VARCHAR VARCHARACTER VARYING WHEN WHERE WHILE WITH WRITE XOR YEAR_MONTH ZEROFILL それでも予約語を使いたい場合 あまり推奨はされませんが、 それでも予約語を使いたい場合、バッククオート(`)を用います。 SQL文 これはエラー CREATE TABLE RESERVATION ( id INT NOT NULL AUTO_INCREMENT, WHERE VARCHAR(255) NOT NULL, PRIMARY KEY(id) ); WHEREは予約語として登録されているためエラーがでる。 これは通る もし使いたい場合バッククオートを使う CREATE TABLE RESERVATION2 ( id INT NOT NULL AUTO_INCREMENT, `WHERE` VARCHAR(255) NOT NULL, PRIMARY KEY(id) ); どうしても使いたい場合はバッククオートを使う。 まとめ あまり推奨されませんが、どうしても使いたい場合はバッククオートで予約語をくくりましょう。 以上
https://w.atwiki.jp/installmaniax3/pages/113.html
html head meta http-equiv="Content-Type" content="text/html; charset=UTF8" title ようこそ /title /head body form action="index.php" methid="get" select name="SC" option value="all" ?php if(@$_GET[ SC ]== all ) echo selected ? 全て /option option value="青春学園中等部" ?php if(@$_GET[ SC ]== 青春学園中等部 ) echo selected ? 青春学園中等部 /option option value="不動峰中学校" ?php if(@$_GET[ SC ]== 不動峰中学校 ) echo selected ? 不動峰中学校 /option option value="氷帝学園中等部" ?php if(@$_GET[ SC ]== 氷帝学園中等部 ) echo selected ? 氷帝学園中等部 /option option value="立海大付属中学校" ?php if(@$_GET[ SC ]== 立海大付属中学校 ) echo selected ? 立海大付属中学校 /option option value="四天宝寺中学校" ?php if(@$_GET[ SC ]== 四天宝寺中学校 ) echo selected ? 四天宝寺中学校 /option option value="比嘉中学校" ?php if(@$_GET[ SC ]== 比嘉中学校 ) echo selected ? 比嘉中学校 /option /select select name="GK" option value="all" ?php if(@$_GET[ GK ]== all ) echo selected ? 全て /option option value="1年" ?php if(@$_GET[ GK ]== 1年 ) echo selected ? 1年 /option option value="2年" ?php if(@$_GET[ GK ]== 2年 ) echo selected ? 2年 /option option value="3年" ?php if(@$_GET[ GK ]== 3年 ) echo selected ? 3年 /option /select input type="submit" / /form ?php try { $pdo = new PDO("mysql host=localhost; dbname=test", "yukitora", "5106"); $stmt = $pdo- query("SET NAMES utf8;"); $sql = SELECT * FROM tennis ; $where = array() ; $asc = array() ; $desc = array() ; if(@$_GET[ SC ]!="" @$_GET[ SC ]!="all") { $where[] .= 学校名=" .$_GET[ SC ]. " ; } if(@$_GET[ GK ]!="" @$_GET[ GK ]!="all") { $where[] .= 学年立場 like "% .$_GET[ GK ]. %" ; } if(@$_GET[ ASC ]!="") { $asc[] .= $_GET[ ASC ] ; } if(@$_GET[ DESC ]!="") { $desc[] .= $_GET[ DESC ]. DESC ; } //var_dump($where) ; if(count($where) 0) { $sql .= WHERE .implode(" AND ", $where) ; } if(count($asc)+count($desc) 0) { $sql .= ORDER BY .implode(",", $desc).implode(",", $asc) ; } echo $sql ; $stmt = $pdo- query($sql); echo table border=1 ; $row = $stmt- fetch(PDO FETCH_ASSOC) ; if($row != null) { echo tr ; foreach($row as $key= $value) { if($key== 身長 ) { $desc = "index.php?DESC=身長" ; $asc = "index.php?ASC=身長" ; if(@$_GET[ SC ]!="") {$desc.=" SC=".$_GET[ SC ] ;$asc.=" SC=".$_GET[ SC ] ; } if(@$_GET[ GK ]!="") {$desc.=" GK=".$_GET[ GK ] ;$asc.=" GK=".$_GET[ GK ] ; } echo td .$key. a href=" .$desc. " ▲ /a nbsp; a href=" .$asc. " ▼ /a /td ; } else { echo td .$key. /td ; } } echo /tr ; echo tr ; foreach($row as $key= $value) { echo td .$value. /td ; } echo /tr ; } while($row = $stmt- fetch(PDO FETCH_ASSOC)){ echo tr td ; echo implode(" /td td ", $row) . PHP_EOL; echo /td /tr ; } echo /table ; } catch (PDOException $e){ var_dump($e- getMessage()); } $pdo = null; ? /body /html