0

ユーザーが入力した基準でデータベースを検索する検索フォームを作成する必要がある PHP の割り当てに取り組んでいます。MySQL データベースには、firstName 列と lastName 列があります。ユーザーにとって簡単にするために、 to を連結してリストボックスに入力し、ユーザーが人の名前をクリックできるようにしたかったのですが、未定義のインデックスエラーが発生しました。解決策を調べましたが、見つけることができませんでした。

ファイル内の別の場所にあるサーバーとデータベースに接続しています。以下の問題に関連するコードのみを示しました。

フォームコード:

<form action="search.php" method="POST">
    <fieldset style="background-color:#CCC">
    <p> person: <?php fullname(); ?><br>
    </fieldset>
</form>

function fullname()
{
    $query = 'SELECT CONCAT (firstName,\' \',lastName) FROM athlete ORDER BY lastName';
    $result = mysql_query($query);
    echo("<select name=\"fullnameListbox\">");
    echo("<option value=\"empty\"></option>"); 
    while($row = mysql_fetch_assoc($result))
    {
        foreach($row as $index=>$value)
        {
            echo("<option value=\"$value\"> $value </option>"); 
        }
    }
    echo("</select>");
}

処理形態:

echo($_POST['fullnameListbox']);

未確認のインデックス エラーが発生しているというエラーを繰り返します。どんな助けでも大歓迎です。

以下に示すように、print_r($_POST) をインクルードすると、次のようになります。

( [lastNameListbox] => empty [lastNameText] => [search] => Submit )

リストボックス内の名前をクリックしても lastNameListBox は空であると考えているため、理論的には空であってはなりません。

4

2 に答える 2

1

不明なインデックス通知は、まだ初期化されていない配列インデックスにアクセスしようとすることに関連する PHP通知です。

$_GET['some_key_name']++; // will result in such a notice
                          // if the array key was never initialised

if(isset($_GET['some_key_name'])) // will not result in such a notice
    $_GET['some_key_name']++;     // will not result in such a notice
else
    $_GET['some_key_name'] = 1;   // will not result in such a notice
于 2012-08-31T12:05:44.650 に答える
0

こんにちは、最初にデータベースに接続する必要があります。その後、クエリも実行できます。

<?php
   $con = mysql_connect("localhost","peter","abc123");
   if (!$con)
   {
       die('Could not connect: ' . mysql_error());
   }
 // some code
 mysql_close($con);
 ?>

これを試して..

于 2012-08-31T11:42:14.560 に答える