質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

  • PHP

    21259questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    6139questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Windows 7

    386questions

    Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

PHPのMySQLについてわからないところがあります

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 393

marimokomokmOk

score 46

PHPからMySQLでわからないところがあります。

タメ語と正しい敬語どちらかに含まれる文字を検索出来るようにしたいのですが、上手く機能しません。
ご教示ください。
イメージ説明

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


<title>PHP入門</title>
<style type="text/css">
.font1 {
    font-family: "あずきフォント", serif;
}

.font2 {
    font-family: "あずきフォント", serif;
    font-size: 160%;
    color: "EEEEEE";
}
</style>
</head>
<body>
    </br>
<!-- <table border="1" width="80%"> -->
<table>
        <tr style="background: #ccccff">
            <th class="font1">番号</th>
            <th class="font1">タメ語</th>
            <th class="font1">正しい敬語</th>
            <th class="font1">例文</th>
        </tr>
 <?php
    $pdo = new PDO ( 'mysql:host=localhost;dbname=honorific;charset=utf8', 'staff', 'password' );
    $sql = $pdo->prepare ( 'select * from honorifics where wrongHonorific like ? or rightHonorific like ?');
    $sql->execute (array ('%'.$_REQUEST ['keyword'].'%','%'.$_REQUEST['keyword'].'%'));
//     $sql->execute(['%'.$_REQUEST['keyword'].'%']);
    foreach ( $sql->fetchAll () as $row ) {
        echo '<tr>';
        echo '<td>', $row ['id'], '</td>';
        echo '<td>', $row ['wrongHonorific'], '</td>';
        echo '<td>', $row ['rightHonorific'], '</td>';
        echo '<td>', $row ['example'], '</td>';
        echo '</tr>';
    }
    ?>
 </table>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xm1ns="http://www.w3.org/1999/xhtml">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript">


<title>敬語学習ノート</title>
<style type="text/css">
.font1 {
    font-family: "あずきフォント", serif;
}

.font2 {
    font-family: "あずきフォント", serif;
    font-size:160%;
    color:"EEEEEE";
}
.body{
    cursor:url(hosi5.ani);
}
html,body {
 scrollbar-base-color:#c3d7e0;
 scrollbar-track-color:#c3d7e0;
 scrollbar-face-color:#c3d7e0;
 scrollbar-shadow-color:#c3d7e0;
 scrollbar-darkshadow-color:#c3d7e0;
 scrollbar-highlight-color:#c3d7e0;
 scrollbar-3dlight-color:#c3d7e0;
 scrollbar-arrow-color:#ffffff;
 filter:chroma(color=#c3d7e0);
 }
</style>
</head>
<body>
    <table border="1" width="80%">
        <caption class="font2" >敬語学習ノート</caption>
</br>
<p class="font1">検索したいタメ語を入力してください</p>
<form action="" method="post">
<input type="text" name="keyword">
<input type="submit" value="検索">
</form>
</p>

        </br>
        <tr style="background: #ccccff">
            <th class="font1">番号</th>
            <th class="font1">タメ語</th>
            <th class="font1">正しい敬語</th>
            <th class="font1">例文</th>
        </tr>
<?php

$pdo = new PDO ( 'mysql:host=localhost;dbname=honorific;charset=utf8', 'staff', 'password' );

if($_POST){
$vKeyword = isset($_POST['keyword']) ? $_POST['keyword']:'';

$sql = $pdo->prepare ( 'select * from honorifics where wrongHonorific like ?' );
$sql->execute (array ('%'.$vKeyword.'%'));
function h($str) {
    return htmlspecialchars ( $str );
}
foreach ( $sql->fetchAll() as $row ) {
    echo '<tr>';
    echo '<td>' . h ( $row ['id'] ), '</td>';
    echo '<td>', h ( $row ['wrongHonorific'] ), '</td>';
    echo '<td>', h ( $row ['rightHonorific'] ), '</td>';
    echo '<td>', h ( $row ['example'] ), '</td>';
    echo '</tr>';
    echo "\n";
}
}else if(empty($_POST['keyword'])){
function h($str) {
    return htmlspecialchars ( $str );
}
foreach ( $pdo->query('select * from honorifics') as $row ) {
    echo '<tr>';
    echo '<td>' . h ( $row ['id'] ), '</td>';
    echo '<td>', h ( $row ['wrongHonorific'] ), '</td>';
    echo '<td>', h ( $row ['rightHonorific'] ), '</td>';
    echo '<td>', h ( $row ['example'] ), '</td>';
    echo '</tr>';
    echo "\n";
}
}
?>
</table>
</body>
</html>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • motuo

    2017/02/06 16:49

    2点、対応をお願いします。①ソースコードは```で括ってください。そうすると、見やすくなります。②「上手く機能しません」とは具体的にどのような状態でしょうか?想定通りの検索結果にならない、という事でしょうか。であれば、入力データと想定結果を合わせて提示頂けると回答がしやすいと思います。

    キャンセル

  • marimokomokmOk

    2017/02/06 16:57

    例えば検索欄に「ご放念」といれて検索すると3が表示されます

    キャンセル

回答 1

checkベストアンサー

0

2つPHPが提示されていますが、相関関係がわかりません。

後者のformのactionが""なので自分自身に送信していますから
前者は参照されませんよね?
どうしたいのでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/06 17:21

    ご解答くださりありがとうございます
    そうですね
    honorific_output.phpは関係ありませんでした

    キャンセル

  • 2017/02/06 17:27

    修正し、解決しました。
    ありがとうございました!

    ```php:honorific_input.php
    <?php
    var_dump($_POST);
    // var_dump($_POST['keyword']);
    var_dump($_REQUEST);

    // if($_POST) {
    // $keyword = $_POST['keyword'];
    // }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xm1ns="http://www.w3.org/1999/xhtml">
    <html lang="ja">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Script-Type" content="text/javascript">


    <title>敬語学習ノート</title>
    <style type="text/css">
    .font1 {
    font-family: "あずきフォント", serif;
    }

    .font2 {
    font-family: "あずきフォント", serif;
    font-size:160%;
    color:"EEEEEE";
    }
    .body{
    cursor:url(hosi5.ani);
    }
    html,body {
    scrollbar-base-color:#c3d7e0;
    scrollbar-track-color:#c3d7e0;
    scrollbar-face-color:#c3d7e0;
    scrollbar-shadow-color:#c3d7e0;
    scrollbar-darkshadow-color:#c3d7e0;
    scrollbar-highlight-color:#c3d7e0;
    scrollbar-3dlight-color:#c3d7e0;
    scrollbar-arrow-color:#ffffff;
    filter:chroma(color=#c3d7e0);
    }
    </style>
    </head>
    <body>
    <table border="1" width="80%">
    <caption class="font2" >敬語学習ノート</caption>
    </br>
    <p class="font1">検索したいタメ語を入力してください</p>
    <form action="" method="post">
    <input type="text" name="keyword">
    <input type="submit" value="検索">
    </form>
    </p>

    </br>
    <tr style="background: #ccccff">
    <th class="font1">番号</th>
    <th class="font1">タメ語</th>
    <th class="font1">正しい敬語</th>
    <th class="font1">例文</th>
    </tr>
    <?php

    $pdo = new PDO ( 'mysql:host=localhost;dbname=honorific;charset=utf8', 'staff', 'password' );

    if($_POST){
    $vKeyword = isset($_POST['keyword']) ? $_POST['keyword']:'';

    $sql = $pdo->prepare ( 'select * from honorifics where wrongHonorific like ? or rightHonorific like ?' );
    $sql->execute (array ('%'.$vKeyword.'%','%'.$vKeyword.'%'));
    function h($str) {
    return htmlspecialchars ( $str );
    }
    foreach ( $sql->fetchAll() as $row ) {
    echo '<tr>';
    echo '<td>' . h ( $row ['id'] ), '</td>';
    echo '<td>', h ( $row ['wrongHonorific'] ), '</td>';
    echo '<td>', h ( $row ['rightHonorific'] ), '</td>';
    echo '<td>', h ( $row ['example'] ), '</td>';
    echo '</tr>';
    echo "\n";
    }
    }else if(empty($_POST['keyword'])){
    function h($str) {
    return htmlspecialchars ( $str );
    }
    foreach ( $pdo->query('select * from honorifics') as $row ) {
    echo '<tr>';
    echo '<td>' . h ( $row ['id'] ), '</td>';
    echo '<td>', h ( $row ['wrongHonorific'] ), '</td>';
    echo '<td>', h ( $row ['rightHonorific'] ), '</td>';
    echo '<td>', h ( $row ['example'] ), '</td>';
    echo '</tr>';
    echo "\n";
    }
    }
    ?>
    </table>
    </body>
    </html>
    ```

    キャンセル

同じタグがついた質問を見る

  • PHP

    21259questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    6139questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Windows 7

    386questions

    Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。