• ベストアンサー
  • すぐに回答を!

mysqlのデータベースの内容をphpでだしたいのですが。。。

初歩的な質問で、自分なりにネットで調べたり、DBに詳しい友人にも聞いたのですが、どうしてもできなかったため質問させていただきます。 【やりたいこと】 データベースに中の文字を変数として表示させたい 【結果】 「Resource id #3」とでる 【データベースの中身】(テーブル名 genre) genreid   genre 1     アクション 2      RPG 3     アドベンチャー ・       ・ ・       ・ 【作ったソース】 <?php mysql_connect('****','****','****'); mysql_select_db('****'); mysql_query("set character_set_client=utf8"); mysql_query("set character_set_connection=utf8"); mysql_query("set character_set_results=utf8"); $genre_name_sql = "select * from genre where genreid = 1"; $genre_name = mysql_query($genre_name_sql); echo $genre_name; ?> 私としてはこれで 「アクション」 と出したいのですが、何かが悪いのか出ません。 お忙しいところ恐縮ですが、 よろしくお願い致します。 (情報が足りない場合はおっしゃってください。。。)

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数38
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3
  • elbend
  • ベストアンサー率53% (7/13)

そうですね。今のソースでは判断できないですね。 とりあえず、 $genre_name_sql = "select genre from genre where genreid = 1"; $genre_name = mysql_query($genre_name_sql); $xxxxx = mysql_result($genre_name, 0); echo $xxxxx; これで「アクション」と出るでしょう。 mysql_queryの戻り値はリソースですから、$genre_name という変数名は 混乱しますね。$resとか、$resource とかにしませんか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます!!また、情報の提示不足ですいませんでした! 教えていただいた書き方で出すことができました。 変数名もわかりやすいように書くことを心がけます! 本当にありがとうございました!!

関連するQ&A

  • MySQL 文字化けについて(PHP)

    いつもお世話になっております。 PHPを使用してMySQLからデータを出し入れする際に文字化けが発生し原因がわからず、大変困っております。 MySQL 4.1.18(クライアント 4.1.21) MySQL文字セット UTF-8 Unicode (utf8) 様々なHPを検索して、下記のような一文を入れれば大丈夫と思ったのですが、それでも文字化けは改善されませんでした。 mysql_query("SET NAMES ujis"); 上記文はmysql_connectの直後に記述しております。 INSERT文、SELECT文どちらに不備があるのかわかりません。 ご教授お願い致します。 記述プログラム:(INSERT文) /********************************* * MySQL接続 ********************************/ // DB Connect $db = db_connect(); // DB Select select_db($db); // Set Names mysql_query("SET NAMES ujis"); /********************************* * INSERT文 ********************************/ $sql = "insert into T_YOYAKU values ('1','A','1','あいうえお')"; mysql_query($sql) 省略・・・ 記述プログラム:(SELECT文) /********************************* * MySQL接続 ********************************/ // DB Connect $db = db_connect(); // DB Select select_db($db); // Set Names mysql_query("SET NAMES ujis"); /********************************* * INSERT文 ********************************/ $sql = "select * from T_YOYAKU"; if ( $rs = mysql_query($sql) ) {

    • ベストアンサー
    • MySQL
  • phpからMySQLへの日本語文字化けについて

    phpからMySQLへの日本語文字化けについて こんにちは。お分かりの方は教えてください。 現在、「ハッスルサーバー」を利用しwebのphpからMySQLサーバーへの 情報登録画面を作成しています。 登録内容で数値やメールアドレスなどの「1バイト文字」ですと 問題ないのですが、日本語の「2バイト文字」ですと文字化けが 発生してしまいます。 phpやMySQLに知識が無いため色々と調べて試したのですが 正しく登録できませんでした。 試した結果とサーバー/DBの状況は以下の通りです。 ※サーバー/DB ・バージョン:5.0.90-log ・文字セット:UTF-8 Unicode (utf8) ・接続照合順序:utf8_general_ci ・種別:MyISAM ・Variable_name:Value ・character_set_client:utf8 ・character_set_connection:utf8 ・character_set_database:utf8 ・character_set_filesystem:binary ・character_set_results:utf8 ・character_set_server:utf8 ・character_set_system:utf8 ・character_sets_dir:/usr/local/share/mysql/charsets/ ※phpファイルにて試した設定 //接続 $objCon = mysql_connect(C_SERVER, C_USER, C_PASSWORD); //文字コード // mysql_query("SET NAMES SJIS"); ←文字コードを左の2パターンで // mysql_query("SET NAMES UTF8"); ←どちらかに切り替えて実行しました。 //データベース $objSecDB = mysql_select_db(C_DB_NAME); //**********SQL(Insert)**********// $strSql = ""; $strSql = $strSql . "Insert Into XXXXX "; $strSql = $strSql . "("; $strSql = $strSql . "KeyNo,"; $strSql = $strSql . "E_Mail,"; $strSql = $strSql . "Title"; $strSql = $strSql . ") "; $strSql = $strSql . "Values "; $strSql = $strSql . "("; $strSql = $strSql . " " . mysql_real_escape_string($intKeyNo) . ", "; //KeyNo $strSql = $strSql . " " . mysql_real_escape_string($strEmail) . ", "; //E_Mail $strSql = $strSql . "'" . mysql_real_escape_string($strTitle) . "' "; //Title $strSql = $strSql . ")"; //SQL発行 $blnRet = mysql_query($strSql); ・上記のソース内に記しましたが文字コードを2パターン切り替えて  実行しましたが文字化けや空文字が登録されました。 どなたか対処方法をお分かりの方はお教えください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHPでMySQLのデータを検索したい

    お世話になります。 PHPでMySQLのデータを検索したいと思い、 以下のようにしてみたのですがうまく表示されません。 -- $name = $_POST["name"]; $link = mysql_connect('localhost', '', ''); $db_selected = mysql_select_db('', $link); mysql_set_charset('utf8'); $sql = "SELECT * FROM search WHERE". $name; $result = mysql_query($sql); while($row = mysql_fetch_array($name)) { print $row['name']; } $close_flag = mysql_close($link); -- どう改善すればいいのでしょうか? 初心者の為、少々お見苦しい点があるかと思いますが どうぞよろしくお願いします。

    • ベストアンサー
    • PHP

その他の回答 (2)

  • 回答No.2
  • yambejp
  • ベストアンサー率51% (3827/7415)

それはSQL文がおかしいか、テーブルの構造がおかしいのでしょう。 普通に考えればidで絞り込みをすれば出てくるデータは1つです。 また、仮に今のものでもアクションというものがただまんぜんと 連続して出るなら、whileしないで、一つだけ取り出せばよいでしょう。 いずれにせよいま提示されているソースでは判断できません

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • yambejp
  • ベストアンサー率51% (3827/7415)

>echo $genre_name; これって何を参考にしました? この$genre_nameに入っているのはあくまでも結果リソースなので mysql_fetch_arrayなどで、データを抽出しないといけません。

参考URL:
http://www.php.net/manual/ja/function.mysql-fetch-array.php

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご返答ありがとうございます!! >これって何を参考にしました? 実際にDBサイトを作っている知人が教えてくれました。一応もぐりや知ったかぶりではないと思うんですが。。。 >この$genre_nameに入っているのはあくまでも結果リソースなので >mysql_fetch_arrayなどで、データを抽出しないといけません。 こちらご説明不足で大変申し訳ありませんでした。 mysql_fetch_arrayで出せることは分かっていたのですが、実は実際に作っているのがもうちょこっとだけ複雑な感じになっていて、配列にすると アクション アクション アクション アクション ・ ・ ・ となってしまうのです。 それではなくて、できれば文章中やタイトルタグなどに「アクション」などを引っ張ってくるやり方があると伺ったのですが。。。 ご説明不足で非常に申し訳ないです。。。

関連するQ&A

  • mysqlからphpに表示ですべての項目を出したい

    phpとmysqlの勉強をしているのですが、出したい項目がでてきてくれません。 今mysqlでidとnameとpriceの項目を作っているのですが、以下だとどうしてもnameしか出てきてくれません。 どうすれば3つの項目がでてくれますでしょうか? よろしくお願いします。 <?     mysql_connect('localhost' , 'root' , '') or die(mysql_error());     mysql_select_db('db1'); mysql_query('SET NAMES UTF8'); $sql="SELECT * FROM syouhin"; $res=mysql_query($sql); $options=""; while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ $options.="<input type=\"radio\" name=\"syouhin1\" value='{$row['id']}' checked>        {$row['name']}\n<br>"; } $select="{$options}</select>\n";     print $select; ?>

    • ベストアンサー
    • PHP
  • PHPから、MySQL内に日本語名のテーブルを作成する事ができません。

    PHPから、MySQL内に日本語名のテーブルを作成する事ができません。 いつも、お世話になっております。 小生、現在、WindowsXPSP3上で、Apache2.2.15とMySQL5.1.46とPHP5.2.13を使用し、PHPを勉強している、PHP初心者です。 今回質問させて頂きたいのは、PHPからMySQL内にデータベースを作成後、日本語名でテーブルを作成したいのですが、なぜか作成できません。 PHPのソースは以下の様になっています。 -----mysql.php----- <?php //MySQLに接続 $sql = mysql_connect('localhost', 'root', 'root'); if(!$sql){ print("MySQLに接続失敗" . "<br>\n"); mysql_close($sql); die(); } else{ print("MySQLに接続成功" . "<br>\n"); } //DB作成 $create_db = 'CREATE DATABASE HUMAN'; if(mysql_query($create_db, $sql)){ print("DB作成成功" . "<br>\n"); } else{ print("DB作成失敗" . "<br>\n"); mysql_close($sql); die(); } //DB選択 if(!(mysql_select_db("HUMAN"))){ print("DB選択失敗" . "<br>\n"); mysql_close($sql); die(); } //文字コードをutfに設定 mysql_query("set names utf-8"); //テーブル作成 $create_table = "CREATE TABLE 人間 (名前 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 年齢 INT NOT NULL, 身長 VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 体重 VARCHAR(50) CHARACTER SET utf8 COLLATE uft8_general_ci NOT NULL, 職種 VARCHAR(50) CHARACTER SET utf8 COLLATE uft8_general_ci NOT NULL, ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; if(mysql_query($create_table, $sql)){ printf("テーブル作成成功" . "<br>\n"); } else{ print("テーブル作成失敗" . "<br>\n"); mysql_close($sql); die(); } //テーブルのデータを取得、表示 $select = "SELECT * FROM 人間"; if($result = mysql_query($select, $sql)){ print("データ取得成功" . "<br>\n"); } else{ print("データ取得失敗" . "<br>\n"); mysql_close($sql); die(); } while($getdata = mysql_fetch_assoc($result)){ foreach($getdata as $output){ print($output . "<br>\n"); } } //MySQLにCOMMIT文送信 $commit = "COMMIT;"; if(mysql_query($commit, $sql)){ print("コミット成功" . "<br>\n"); } else{ print("コミット失敗" . "<br>\n"); mysql_close($sql); die(); } //MySQLの接続終了 mysql_close($sql); ?> 以上です。 お忙しい中、申し訳ございませんが、先輩方ご教示宜しくお願い致します。

    • ベストアンサー
    • PHP
  • MAMPのMySQLで文字化けする

    すみません、教えてください(><) mac( os X 10.7.5)でMAMP+Eclipse+PHPを使って以下のようにMySQLにデータ挿入 mysql_connect('localhost','root','root') or die(mysql_error()); mysql_select_db('mymy'); mysql_query('SET NAMES UTF-8'); mysql_query('INSERT INTO item SET id=1, name="あいうえお"'); をしたのですが、 phpMyadminからデータを確認してみると日本語が文字化けしてしまいます。 (phpMyadminからデータを挿入した場合はちゃんと表示されます。) 色々と調べ、 Eclipseの環境設定でワークスペースの文字コードやphpの文字コードをUTF-8にしたり、 MySQLのmy.cnfファイルの中に以下 [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_unicode_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 を追加して再起動し、DBを一旦削除して再度作り直して挿入してみたりとやったのですが、改善されません。 サーバ接続の照合順序 は「utf8_general_ci」として作成しています。 コンソールからMySQLへ接続してDBの文字コードを確認してみると character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /Applications/MAMP/Library/share/charsets/ | というかたちになっています。 他にどういった点を改善すればいいのでしょうか? もうお手上げ状態でどうすることも出来ずにいます。。。

  • データベースのインポートができません(MySQL)

    ●質問の主旨 下記のサイトを見ながら、データベースのテーブルを インポートしようとしていますが、エラーが出ます。 この場合、phpmyadminのどこを確認すればよいでしょうか? ご存知の方、ご教示願います。 http://www.dbonline.jp/phpmyadmin/export-import/index3.html ●開発環境 windows8 xammp1.8.1 ●エラーの内容(添付画像) エラー 実行した SQL: -- -- データベース: `mydb10` -- CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; MySQL のメッセージ: #1007 - Can't create database 'mydb10'; database exists ●インポートの内容(mydb.sql) -- phpMyAdmin SQL Dump -- version 3.5.2.2 -- http://www.phpmyadmin.net -- -- ホスト: 127.0.0.1 -- 生成日時: 2013 年 4 月 20 日 08:27 -- サーバのバージョン: 5.5.27 -- PHP のバージョン: 5.4.7 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- データベース: `mydb10` -- CREATE DATABASE `mydb10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `mydb10`; -- -------------------------------------------------------- -- -- テーブルの構造 `db10` -- CREATE TABLE IF NOT EXISTS `db10` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `address` text NOT NULL, `tel` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- -- テーブルのデータのダンプ `db10` -- INSERT INTO `db10` (`id`, `name`, `address`, `tel`) VALUES (1, 'あああ', 'いいい', '111'), (2, 'ううう', 'えええ', '222'), (3, 'おおお', 'かかか', '333'); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

    • ベストアンサー
    • MySQL
  • MYSQLの文字化けについて

    MYSQLの文字化けについて質問させてください。 MYSQL COMMAND LINE CLIENTでMYSQLに作ったデータベースに下記のSQL文でデータを入れると、下記のエラーが出ます。 sql 「insert into テーブル名 (id、type)values (1,'男性’);」 エラー文 incorrect string value: '入力文字が文字化けして表示’for column 'type’at row 1 文字化け対策として、調べたところ、下記のように「my.ini」に記述すると言うことでしたので、試してみました。 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 skip-character-set-client-handshake [mysqldump] default-character-set =utf8 ちなみにその他情報です。 MySQLのバージョン MySQL 5.1 MySQLで有効になっている文字コード character_set_client | utf8 character_set_connection | utf8 character_set_database | utf8 character_set_filesystem | binary character_set_results | utf8 character_set_server | utf8 character_set_system | utf8 何かお解かりになることがありましたら、宜しくお願いします。

  • PHPでデータベース(mySQL)から値を取りだすには

    PHPで値をmySQLに保存するコードを作成するのに 成功したのはいいのですが、値を取り出して 出力するコードがうまく書けません ネットで調べてみたり、参考書を読んで やっているのですがうまくいきません こういうコードを書いたのですが <?php $conn=mysql_connect("localhost", "user", "pass"); if (!$conn) { die('接続失敗です。'.mysql_error()); } mysql_select_db("database", $conn); mysql_query("SET NAMES 'ja-utf8'", $conn); $sql='SELECT caram, FROM table'; $row=mysql_query($sql, $conn); $res=mysql_fetch_assoc($row); echo htmlspecialchars($res, ENT_QUOTES); mysql_close(); ?> どこが間違っているかご指摘いただけると ありがたいです。

    • 締切済み
    • PHP
  • データベースでの文字化け

    お世話になっております、ぷりんと申します。 下記の投稿をしましたが、解答が得られませんでした・・・。 しかしいろいろ調べているうちに、PHPでは「 mysql_set_charset 」を実行すると文字化けが治るとお聞きしました。 この mysql_set_charset をPerlで実行するには、どうしたらよろしいのでしょうか? 以下前回投稿 3日間文字化けと格闘した結果、ついに力尽きてしまったのでまたこちらにお世話になります(TдT) 使用しているコードはUTF-8です。 さて、データベースへ   $db=DBI->connect("略");   $sth = $do->prepare("select name from xxx"); にて接続、nameカラムのデータを抽出し、配列変数に入れて表示させました。 データベースに直接日本語入力(例えば”ああああ”)をし、抽出すると、HTML出力の際に「????」となってしまいます。 INT型は正常に処理されます。(文字ではありませんが念のため記述) データベースに直接記入しない方法(CGIにてInsertを使用して)「ああああ」を送信しますと、データベースをブラウザで確認した際に「&#227;&#129;&#8218;&#227;&#129;&#8218;&#227;&#129;&#8218;&#227;&#129;&#8218;」になりますが CGIにてSelectを使用し、リクエストすると きちんと「ああああ」と表示されます。 また、InsertでNプレフィックスをつけた際はデータベースをブラウザで確認するときちんと「ああああ」となっておりますが、CGIにてSelectを使用してリクエストすると「????」とデータベースに直接日本語入力した時と同じ結果になります。 最終的に「読み込みも問題なく、データベースをブラウザで確認しても(または直接編集しても)正常に処理される環境にしたいのです! 文字化け関係はしんどいかと思いますが、どなたかお詳しい方、ご教授お願い致します。 -環境- ●ロリポップレンタルサーバー   Perl(ver.5.8.8)   MySQL(バージョン5.1.34)利用可。『PHP My Admin』でのみ利用可。 ●本文中の「データベースをブラウザで確認」とは、PHP My Adminにはいって確認しているという意。 ●cgi保存形式は全てUTF8(BOM無し。有だとエラー) ●HTML出力は   print "Content-type: text/html; charset=utf-8\n\n"; ●show variables like 'char%'; を実行した結果 character_set_client     utf8 character_set_connection  utf8 character_set_database   utf8 character_set_filesystem  binary character_set_results    utf8 character_set_server    utf8 character_set_system    utf8 character_sets_dir/usr/share/mysql/charsets/ ●照合順序 カラム:utf8_unicode_ci テーブル:utf8_unicode_ci DB:utf8_unicode_ci MySQL接続:utf8_unicode_ci -試したこと- Encode::encodeやEncode::decode関数を使用しても変化無し。

    • ベストアンサー
    • Perl
  • JAVAでMySQLに接続すると日本語が化ける

    似たような質問がいくつかありますが、どれも解決には至らなかったため質問させていただきます。 以下のような環境でMySQLにレコードを追加するプログラムを作成しましたが、どうしても日本語が文字化けします。 解決方法をご存知の方、心当たりのある方は、何卒ご教授お願いします。 MySQLの使用文字コードの設定は下記の通りです character_set_client: utf8 character_set_connection: utf8 character_set_database: utf8 character_set_filesystem: binary character_set_results: utf8 character_set_server: latin1 character_set_system: utf8 データベースおよびテーブルは下記のように作成しました create database test default character set utf8; create table test ( text text ); Javaのソースコードは以下です import java.sql.*; public class MySQL {  public static void main(String[] args) {  try {   Class.forName("com.mysql.jdbc.Driver");   Connection db = DriverManager.getConnection("jdbc:mysql://localhost/?useUnicode=true&amp;characterEncoding=UTF-8", "root", "");   Statement sql = db.createStatement();   sql.execute("use test;");   sql.execute("insert into test values('ほげほげ');");   ResultSet results = sql.executeQuery("select * from test");   db.close();  } catch (Exception e) {   System.out.println("can't connect the database (" + e + ")");  } } } これを以下のように実行します $ javac -encoding UTF-8 MySQL.java $ java -Dfile.encoding=UTF-8 MySQL これでもかというぐらいUTF-8で統一してますが、 それでも、???? のように文字化けします。 試せることは全てやってみましたがどうにも解決できません。 ご助力よろしくお願いいたします。

  • SELECT文をinclude(SQLとPHP)

    SQLのデータを呼び出すときに <?php function connect() { return new PDO("mysql:dbname=★★★★★;host=★★★★★","★★★★★","★★★★★", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`")); } $pdo = connect(); $st = $pdo->query("SELECT * FROM table-name"); $word = $st->fetchAll(); ?> としています。 ここで、テーブル名(ここでは「table-name」)を外部のphpからincludeすることは可能でしょうか? 試したのは、 table-name という内容のphpを 「table.php」というファイル名で同じディレクトリ内に保存。 <?php function connect() { return new PDO("mysql:dbname=★★★★★;host=★★★★★","★★★★★","★★★★★", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`")); } $pdo = connect(); $st = $pdo->query("SELECT * FROM {<?php include('table.php'); ?>}"); $word = $st->fetchAll(); ?> としたのですが、反応しませんでした。 そもそもこのようなことが可能かどうかもわかりません。 良い方法がありましたら、ご指導ください。

    • ベストアンサー
    • PHP
  • SELECT文をinclude(SQLとPHP)2

    SQLのデータを呼び出すときに <?php function connect() { return new PDO("mysql:dbname=★★★★★;host=★★★★★","★★★★★","★★★★★", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`")); } $pdo = connect(); $st = $pdo->query("SELECT * FROM table-name"); $word = $st->fetchAll(); ?> としています。 ここで、テーブル名(ここでは「table-name」)を外部のphpからincludeすることは可能でしょうか? 試したのは、 table-name という内容のphpを 「table.php」というファイル名で同じディレクトリ内に保存。 <?php function connect() { return new PDO("mysql:dbname=★★★★★;host=★★★★★","★★★★★","★★★★★", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`")); } $pdo = connect(); $st = $pdo->query("SELECT * FROM {<?php include('table.php'); ?>}"); $word = $st->fetchAll(); ?> としたのですが、反応しませんでした。 そもそもこのようなことが可能かどうかもわかりません。 良い方法がありましたら、ご指導ください。

    • ベストアンサー
    • PHP