LoginSignup
bigD
@bigD

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

whereで検索したレコードを表示するには、

複数のオンライン診療サービスを一覧にした医療機関リストを作りたい

id 都道府県 医療機関 住所 診療科 アプリ名
1 北海道 ○○病院 〒●●●-●●●● 内科 CLINICS
2 東京都 ○○病院 〒●●●-●●●● 耳鼻咽喉科 curon
3 山口県 ○○病院 〒●●●-●●●● 精神科、心療内科 CLINICS

現在上記のようなテーブルをデータベース内で作成し、PHPを介して表示いるのですが、
次に、都道府県別やアプリ、診療科などに分けた表を作りたいです。

そこでwhere句で検索条件を指定し、
select * from potal where jpn = '北海道';
上記のようにすると北海道の医療機関リストが指定されると思いますが、
こうして指定されたテーブルをPHPを介して表示するにはどうしたら良いでしょうか。

0

1Answer

絞り込み(where)なしでの表示は実現していると受け取って良いでしょうか?
そのソースを拝見することは可能でしょうか?
「できていること」を示すことで、課題が絞り込まれて、回答を得やすくなるように思います。

0

Comments

  1. @bigD

    Questioner
    返信いただきありがとうございます。

    --PHP--

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title></title>
    </head>
    <body>

    <table border='1'>
    <tr>
    <th>id</th>
    <th>医療機関</th>
    <th>住所</th>
    <th>電話番号</th>
    <th>都道府県</th>
    <th>診療科</th>
    <th>アプリ名</th>
    </tr>
    <?php
    $id=$_POST['id'];
    $hosp=$_POST['hosp'];
    $add=$_POST['add'];
    $phone=$_POST['phone'];
    $jpn=$_POST['jpn'];
    $dep=$_POST['dep'];
    $apps=$_POST['apps'];

    $query='select * from potal;';

    $dbconn = pg_connect("host=localhost dbname= user= password=")
    or die('Could not connect: ' . pg_last_error());
    $result = pg_query($query) or die('Query failed: ' . pg_last_error());
    while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
    echo "\t<tr>\n";
    echo '<td>' . $line['id'] . '</td><td>' . $line['hosp'] . '</td><td>' .
    $line['add'] .'</td><td>' . $line['phone'] .'</td><td>' . $line['jpn'] .
    '</td><td>' . $line['dep'] .'</td><td>'
    . $line['apps'] .'</td><td>' . "</td>\n";
    echo "\t</tr>\n";
    }
    ?>
    </table>
    </body>
    </html>

    --SQL--

    create table potal (
    id int,
    hosp varchar(255),
    add varchar(255),
    phone int,
    jpn text,
    dep varchar(255),
    apps varchar(255),
    press text
    ) without oids;

    insert into potal (id, hosp, add, phone, jpn, dep, apps) values (1, '町立中標津病院', '北海道標津郡中標津町西10条南9-1-1', 0153728200, '北海道', '産婦人科,耳鼻咽喉科', 'CLINICS');

    現在は上記のようになっていて、医療機関リストをPHPを介して表示することはできています!
  2. ご回答ありがとうございます。
    `$query='select * from potal;';`を、
    `$query='select * from potal where jpn = ''北海道'';';`とすれば、
    取り敢えず表示できるのではないでしょうか。
  3. @bigD

    Questioner
    $query='select * from potal where jpn = "北海道";';
    上記のように試してみたのですが、
    column "北海道" does not exist LINE 1 とエラーメッセージが表示され、
    列が存在しないようになってしまいます
  4. 「"北海道"という列名はない」と言われているわけですね。

    私の示したものと実際に試されたものとでは、「''」がシングルクォート二つかダブルクォート一つかという点が異なります。
    以下から、両端の「`」を除いた部分をコピペして試してみてください。

    `$query='select * from [potal] where [jpn] = ''北海道'';';`
  5. @bigD

    Questioner
    上記のやつで試してみたのですが、syntax error at or near が出てしまって、
    一度 $query='select * from potal where id = 1;'; こちらで試したら、
    きちんとidが1番のやつが表示されました、、
    日本語がきちんと解釈されていない様で、どうしたモノかと、
  6. ソースファイルの文字コードは適切でしょうか?

    日本語の取り扱いが課題となるのでしたら、新しい質問を書かれた方が回答を得やすいかも知れません。
    お役に立てず申し訳ありません。
  7. @bigD

    Questioner
    いえいえ、非常に丁寧に教えて下さってありがとうございました。
  8. @bigD

    Questioner
    試行錯誤した結果 
    $query="SELECT * FROM potal WHERE jpn IN('北海道')";
    上記とすることで出来ました!
  9. お役には立てませんでしたが、解決できて良かったです。

    もしかして、以下だと通るとかないですよね…
    $query="select * from potal where jpn = '北海道';";

Your answer might help someone💌