• 締切済み
  • 困ってます

mysql データ取得

db_name = AAA table_name = BBB _______ id name 1 tanaka 2 yamada 3 suzuki _______ 上記のidを指定して、 nameを取得するには どうしたらいいですか? 例)id = 1 を指定して返り値に   tanakaが代入される

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

  • 回答数4
  • 閲覧数117
  • ありがとう数2

みんなの回答

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

デバッグするなら $sql = "select name from BBB where id=1"; $res = mysql_quer($sql,$$link) or die(mysql_error()); とします。 $resはリソースを返すのでそれ自体をprintしてもあまり意味がありません。

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

関連するQ&A

  • MySQL文がわかりません。

    いつもお世話になってます。 PHP+MySQLを使用しています。 下記のような操作を行いたいのですが、 MySQL文を教えて頂けませんでしょうか。 table名:person person_id : name : email 1 : tanaka : aaaaa 2 : suzuki : bbbbb 3 : sato : ccccc 4 : saito : ddddd 5 : takahasi : eeeee 上記のようなテーブルがあったとして、 例えば、person_idが2,4のものを抽出して、 table名:sendmail send_id : name : email : ticket 1 : ito : fffff : 10-20 2 : huruka : eeeee : 11-01 3 : suzuki : bbbbb : 11-19 4 : saito : ddddd : 11-19 上記テーブルに追加(send_idの3,4)したいのです。 ticketカラムは、send_idの3,4で同じ値(文字列)を使います。 大変お手数ですが、上記内容にてご教授願います。

    • ベストアンサー
    • MySQL
  • データ取得

    name*****key1****key2****date ------------------------------- AAA*******1*******1*****2003/01 BBB*******2*******2*****2002/12 AAA*******1*******2*****2003/01 BBB*******1*******2*****2002/11 BBB*******2*******2*****2002/11 AAA*******2*******2*****2003/01 AAA*******2*******2*****2002/12 ------------------------------- (※全てのフィールドが同じ情報のレコードはない) ****は意味はありません。表を見やすくするために書いただけです。 上記のテーブルから下記のデータを取得したいと 考えています。 AAA*****2002/12*****1 AAA*****2003/01*****3 BBB*****2002/11*****2 BBB*****2002/12*****1 name列とdate列の重複しないレコードの件数を取得したいのですが どのようなSQLを記述すればよろしいでしょうか?

  • select文の記述について

    select文の記述について質問させていただきます。 下記のデータベースのテーブルの先頭からnumberを条件として 2名分のデータをselect文にて抽出したいと思っております。 (numberが重複し、重複数も異なるデータとなります。) select文の記述をどのようにするか教えていただければと思っております。 よろしくお願いいたします。 データベースのテーブル +——+—————+—————+————+ | id | name | number | score | +——+—————+—————+————+ | 1 | tanaka | 358 | 98 | | 3 | tanaka | 358 | 23 | | 4 | tanaka | 358 | 45 | | 11 | yamada | 126 | 63 | | 17 | yamada | 126 | 77 | | 23 | suzuki | 274 | 36 | | 45 | suzuki | 274 | 16 | | 59 | suzuki | 274 | 89 | | 73 | suzuki | 274 | 75 | | 80 | hanako | 89 | 24 | | (以下続く) | +——+—————+—————+————+ 抽出結果 +——+—————+—————+————+ | id | name | number | score | +——+—————+—————+————+ | 1 | tanaka | 358 | 98 | | 3 | tanaka | 358 | 23 | | 4 | tanaka | 358 | 45 | | 11 | yamada | 126 | 63 | | 17 | yamada | 126 | 77 | +——+—————+—————+————+

    • ベストアンサー
    • MySQL
  • 回答No.3
  • nda23
  • ベストアンサー率55% (773/1384)

mysql_error($接続) これでエラーの理由が分かるはずですけど、 何か表示されませんでしたか?

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

  • 回答No.2
  • nda23
  • ベストアンサー率55% (773/1384)

DBにアクセスするには次の手順が必要です。 (1)DBサーバに接続する。 (2)データベースを選択する。 (3)クエリを実行する。 (4)フェッチする。 (5)フィールドの値を読み込む。 掲題だと、いきなり(3)のクエリを実行 しているし、(4)と(5)飛ばして値は取得 できません。第一、mysql_queryに接続 オブジェクトが指定されてないので、 成功するはずありません。 $接続 = mysql_connect($サーバ,$ユーザ,$パスワード) if ( !$接続 ) {   //接続できない時の処理   print("接続できません");   return ""; } if ( !mysql_select_db("AAA",$接続) ) {   //DBが選択できない時の処理   print(mysql_error($接続));   mysql_close($接続);   return ""; } $sql = "select name from BBB where id=1"; $結果セット = mysql_quer($sql,$接続); if ( !結果セット ) {   //クエリが失敗した時の処理   print(mysql_error($接続));   mysql_close($接続);   return ""; } $氏名 = ""; $レコード = mysql_fetch_object($結果セット); if ( $レコード != FALSE ) {   $氏名 = $レコード->name; } mysql_free_result($結果セット); mysql_close($接続); return $氏名; ★サーバ、ユーザ、パスワードは 然るべき内容を設定してください。 ※サンプルはインデントに漢字空白を 使っています。コピペするとエラーに なります。

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

質問者からのお礼

$sql = "select name from BBB where id=1"; $結果セット = mysql_quer($sql,$接続); if ( !結果セット ) {   //クエリが失敗した時の処理   print(mysql_error($接続));   mysql_close($接続);   return ""; } いろいろと省きましたが 一応この通りにかけていますが、 上記の部分でFALSEが返ってきます。 mysqlそのものにsql文を実行すると 欲しい値が表示されています。 何故でしょうか?

  • 回答No.1

DB AAAに接続後、 select name from BBB where id = '1';

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

質問者からのお礼

$a = mysql_query("select name from BBB where id = '1'"); やってみましたが、booleanで0が $aに入りました。 $aにtanakaを入れるにはどうしたら いいでしょうか?

関連するQ&A

  • 複数テーブルをまとめてソート

    たとえば次のような、都道府県ごとのテーブルがあり、 ID、名前、得点の列があるとします。 テーブル1(テーブル名:tokyo) ID NAME SCORE 1 yamada 89 2 tanaka 45 テーブル2(テーブル名:osaka) ID NAME SCORE 1 sato 65 2 suzuki 22 これらのテーブルをまとめて、全国で得点が上位順に並べたいと 思っております。また、結果にはどのテーブルに所属するものかを 判別する列を追加したいのですが、どういう文を記述したらよいのでしょうか? 望みの結果は次のようなものです。 NAME SCORE TABLE_NAME yamada 89 tokyo sato 65 osaka tanaka 45 tokyo suzuki 22 osaka よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQL文(プリペアドクエリ)がわかりません。

    いつもお世話になってます。 PHP+MySQLを使用しています。 下記のような操作を行いたいのですが、 MySQL文を教えて頂けませんでしょうか。 table名:person person_id : name : email 1 : tanaka : aaaaa 2 : suzuki : bbbbb 3 : sato : ccccc 4 : saito : ddddd 5 : takahasi : eeeee 上記のようなテーブルがあったとして、 例えば、person_idが2,4のものを抽出して、 table名:sendmail send_id : name : email : ticket 1 : ito : fffff : 10-20 2 : huruka : eeeee : 11-01 3 : suzuki : bbbbb : 11-19 4 : saito : ddddd : 11-19 上記テーブルに追加(send_idの3,4)したいのです。 ticketカラムは、send_idの3,4で同じ値(文字列)を使います。 SQL文だと、 INSERT INTO sendmail (name,email,ticket) SELECT name,email,'11-19' FROM person WHERE person_id IN ( 2 , 4 ) で大丈夫なのはわかりました。 これをプリペアドクエリに変換する方法がわかりません。 $para01="11-19"; $para02="2,4"; $db = new mysqli("xxxxx","yyyyy","zzzzz","wwwww"); $presql = $db->prepare("INSERT INTO sendmail (name,email,ticket) SELECT name,email,? FROM person WHERE person_id IN ( ? )"); $presql->bind_param("ss",$para01,$para02); $presql->execute(); 上記で実行してみましたが、$para02は"2"と判断されて、 table名:sendmail send_id : name : email : ticket 1 : ito : fffff : 10-20 2 : huruka : eeeee : 11-01 3 : suzuki : bbbbb : 11-19 になります。(person_idが4のものが抽出されない。) 大変お手数ですが、上記内容にてご教授願います。

    • ベストアンサー
    • MySQL
  • 複数表からのカウント(2)教えてください

    前回の質問と関連しますが 今度は複数の人について 以下のような処理を行うときのクエリーでうまくいか ないのですがどのようになおせばいいでしょうか。 よろしくお願いします <table A> n id name 1 1 yoshida 2 2 tanaka <table B> n id sub score 1 1 AAA 100 2 1 BBB 100 3 1 CCC 50 4 2 AAA 80 5 2 BBB 100 6 2 CCC 50 <result> name count yoshida 2 tanaka 1 tableAとtableBの2つの表があり tableAの2人(以上あり)のscoreが100である subの数をカウントしたい場合 SELECT tableA.name as Name, count(*) FROM tableA, TableB where(tableA.id = tableB.id and tableB.score = 100 )

    • ベストアンサー
    • MySQL
  • PEAR::DBで取得したデータで処理を分岐したい

    DB関連が苦手な上、動作がうまくいかず、アドバイスをいただければと存じます。現在PHP4、MYSQL4.1.20を使用しております。 行いたい処理は、 PEAR::DBで実行したクエリ SELECT MAX(id) FROM table WHERE `name` = '$test'; 等で、whereで一致する行を絞込み、そのうちの最大値のIDを取得 (クエリの動作は、MYSQL単体で行った場合問題なしで、idの値を取得) その後MAX()で取得した1つIDを、$resultに代入したいのですが、どの様に行えばよいのかわかりません。 今までfetchRow()で事足りていたことで、他の関数がわかりません>< $result=$DB->getOne("SELECT MAX(id) FROM table WHERE `name` = '$test';"); といった感じで取得するのが良いのかも知れませんが、うまく取得できずに詰まっておりますorz 解決法、アイデア等ございましたら、お伺いできればと存じます。 上記ソースは、質問させていただく上で、新規に書いたソースですので、カラム名、変数は仮のものです。不明な情報等ございましたら、捕捉させていただきたいと存じます。

    • 締切済み
    • PHP
  • MySQLでinsertした行を取得する

    table t1 id name ------- 1 aaa 2 asv 3 aae といったauto incrementのidを持ったテーブルt1を考えたときに mysql_queryで新規行をinsertした場合にそのidを取得するような ことはできるのでしょうか? phpのmanualを参考にしたところ出来ないような感じのことが書かれて いたのですが,このようなことは頻繁に必要な気もするのですが・・・ 既に考えた案としては ・auto incrementを外して最大のidの1つ上を指定してinsertする ・一度lockしてからinsertして最大のidを取得する というものです もっと1つの関数かなにかでスマートに書けたらいいのですが

    • ベストアンサー
    • PHP
  • 再帰的にデータを取得する方法について

    再帰的にデータを取得する方法について質問させて下さい。 以下のような「TABLE1」と「TABLE2」があった場合に、 TABLE1 ------------------------ | ID | AID | JOB | ------------------------ |  1|   10| XXXXX| ------------------------ TABLE2 ------------------------- | ID | PID | NAME | ------------------------- |  10|  100|   aaa| |  100| 1000|   bbb| | 1000| 10000|   ccc| -------------------------- 再帰的に取得したい親階層が2つまで等分かっている場合に、以下のような結果を1度のSQLで取る事は可能でしょうか? ---------------------------------------------------------------------- |ID|AID|JOB |AID_NAME|AID_PID_1|AID_PID_NAME_1|AID_PID_2|AID_NAME_2| ---------------------------------------------------------------------- |1| 10|HIRA |     aaa|    100|        bbb|   1000|      ccc| ---------------------------------------------------------------------- また、上記の結果が取得可能な場合にパフォーマンス的には1度で取得した方が良いのでしょうか? それともTABLE2の親階層を再帰的に取得するSQLは分割した方が良いのでしょうか? どうかご教授のほどお願い致します。

  • MySQLについてお願いします。

    下記の2つのテーブルより、各顧客が最後に売れた日を抽出したいのですがうまくいきません。 顧客テーブル kokyaku_id kokyaku_name 1 aaa 2 bbb 3 ccc 4 ddd 売上テーブル uriage_date kokyaku_id kingaku 2000-1-1 1 100 2011-12-1 2 200 2010-2-2 2 300 2009-3-1 1 50 2006-5-29 3 300 2007 3 400 2012-9-20 3 100 kokyaku_name | uriage_date aaa | 2009-3-1 bbb | 2011-12-1 ccc | 2012-9-20 顧客dddは売上がないので当然結果には出てこなくてOKです。 何結合でどのようなクエリにすればよろしいでしょうか。 まだDBを初めて2週間なので、ご教示お願い致します。

    • ベストアンサー
    • MySQL
  • PHP/MySQL INSERT文について。

    PHP/MySQL INSERT文について。 こんばんは。 PHP・MySQLでデータベースへデータの書き込みを試行錯誤しております。 そこで一つどうしても解決出来ない問題(謎)があるので質問させて頂きます。 簡易的な質問内容としては 全てのカラムに対する値の挿入は可能なのに カラムを指定して値を挿入しようとしたらエラーが出ます。 データベースの設定はテーブル名【TESTtable】 フィールド 種別 NULL 属性/その他 AAA int(6) No UNSIGNED ZEROFILL / auto_increment BBB int(4) Yes CCC int(4) Yes DDD int(4) Yes PHPでのSQL実行文をしてはの記述としては(値は全て可変で数値を代入します。) INSERT INTO TESTtable VALUES (last_insert_id(),50,600,50) とした場合は問題無くテーブルに書き込みされますが カラムを指定して INSERT INTO TESTtable (AAA,BBB,CCC,DDD) VALUES (last_insert_id(),50,600,50) とした場合、書き込みが行われません。 INSERT INTO TESTtable ('AAA','BBB','CCC','DDD') VALUES (last_insert_id(),50,600,50) INSERT INTO TESTtable (AAA,'BBB','CCC','DDD') VALUES (last_insert_id(),50,600,50) INSERT INTO TESTtable ('AAA','BBB','CCC','DDD') VALUES (last_insert_id(),'50','600','50') 等、色々試してみましたが不可能でした。 カラムAAAはauto_incrementにりますので毎回書き込みされますが BBB、CCC、DDDは書き込みが不要の場合もあるので カラム指定の書き込みは必須となるのですが・・・行き詰ってしまいました・・・。 ご教授頂ければ幸いです。 どうぞ、宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • mysqlで変数を使う方法

    SQL文にPHPの変数のように変動する値を指定することはできますでしょうか。 データベースから特定のレコードを拾ってきて PHPのPOSTメソッドでその値を送信するシステムを作ろうとしています。 具体的には、データベースに名簿(IDと名前だけの簡単なものです)を 予め作っておき、送信ボタンをクリックしたユーザーのIDと紐付いている 名前を送信したいと考えています。 [MySQL] table:meibo id | name ------------ 1 | itou 2 | yamada 3 | suzuki [PHPソース](一部抜粋) ------------ $sql = mysql_query('SELECT * FROM meibo where id=【ここを変動させたい】', $connect); $sql = mysql_fetch_array($sql); $req->addPostData("user_name", $sql['name']); ------------ $idに操作しているユーザーのIDが代入されているとして 以下のようにmysql_queryの中で実行しているSELECT文に$idを利用することは可能でしょうか。 SELECT * FROM meibo where id=$id もし上記のような方法が無理な場合、 代替案をご提案いただけると非常に助かります。 読みにくい文章で恐縮ですが、 どうかお助けください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • checkboxクリックされていないidを取得

    <form id="chkform"> <input type="checkbox" name="check" value="aaa" id="aaa">aaa <input type="checkbox" name="check" value="bbb" id="bbb">bbb <input type="checkbox" name="check" value="ccc" id="ccc">ccc                   ・                   ・                    ・ <input type="checkbox" name="check" value="zzz" id="zzz">zzz </form> チェックボックスの複数の項目の内、チェックされていない全てのIDを取得する方法を教えてください。 よろしくお願いいたします。