0

以下に更新:

私はコードを少し変更し、少し成功していますが、まだ 1 つのことから外れています。ラインを変えました

<option value="<?php echo $row[brokername]; ?>" <?php if ($row[brokername] == $brokerlistrow[id]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>

<option value="<?php echo $brokerlistrow[name]; ?>" <?php if ($row[brokername] == $brokerlistrow[id]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>
<?php } ?> </select>

これで、正しい選択名が表示され、変更された値が実際にデータベースに保存されますが、名前 ID 番号を保存する代わりに、実際の名前が保存されます。$row の print_r は私に与えます:

配列 ( [0] => 4 [id] => 4 [1] => 6 [ブローカー名] => 6 [2] => キムズ ボート [ボート名] => キムズ ボート)

その選択されたユーザーの正しいbrokerlist.idは6ですが、6をboatlist.nameに保存する代わりに、brokerlist.idの代わりにbrokerlist.nameフィールドを保存します。

物理名ではなく、brokerlist.id を保存するには何を変更すればよいですか? :)

前もって感謝します!

(念のため、新しい編集ページのコードを次に示します。

<?php

    include_once('db.php');     

    if(isset($_GET['edit']))

    {

    $id = $_GET['edit']; 

    $res= mysql_query("SELECT * FROM boatlist WHERE id='$id'"); 

    $row= mysql_fetch_array($res);   

    $brokerlistquery = mysql_query("SELECT * FROM brokerlist");

    print_r($row);

    }


    if( isset($_POST['newbrokername']) && isset($_POST['newboatname']))    
       {    
         $newbrokername = $_POST['newbrokername'];
         $newboatname = $_POST['newboatname'];     
         $id= $_POST['id'];

         $sql = "UPDATE boatlist SET brokername='$newbrokername', boatname='$newboatname' WHERE id='$id'";

         $res= mysql_query($sql) or die("Could not update".mysql_error());

         echo "<meta http-equiv='refresh' content='0;url=testaddboat.php'>";

    }



?>

<table class="centerwithroom">    
<form action="testeditboat.php" method="POST">    
<tr>    
<td>New Broker Name </td><td>
<select name='newbrokername'>
  <?php
    while ($brokerlistrow = mysql_fetch_array($brokerlistquery)) {
  ?>
<option value="<?php echo $brokerlistrow[name]; ?>" <?php if ($row[brokername] == $brokerlistrow[id]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>
<?php } ?> </select>
</td>

<tr>
<td>Boat Name:</td><td><input type="text" name="newboatname" value="<?php echo $row[boatname]; ?>"/></td>
</tr>    

</tr>

<td></td><td><input type="submit" value=" Update "/></td>

</tr>

<input type="hidden" name="id" value="<?php echo $row[id]; ?>"/>    

</form>
</table>

(ORIG POSTはここから始まります)

これは私の最初の投稿であり、可能な限り徹底的にしようとします。これは単なる初歩的な形式であり、セキュリティをまったく追加していません。機能させようとしているだけなので、残りの部分に取り掛かります:)私のコードをプログラミングするのは初めてなので、一部の専門家や私には悪いように見えるかもしれません。あなたが与えることができる例が大好きです。

プロジェクトへ。2 つの mysql テーブルがあり、1 つは id と name の 2 つのフィールドを持つ brokerlist と呼ばれます。2 番目のテーブルは、id、brokername、boatname の 3 つのフィールドを持つ boatlist と呼ばれます。brokername フィールドには、brokerlist.id フィールドの値と、boatname に入力されたテキストが含まれます。

正常に機能している両方のテーブルにデータを追加するための php 追加フォームを作成しました。適切に機能するブローカーリスト テーブルを編集するための php 編集フォームを作成しました。私の問題は、私がtesteditboat.phpと呼んでいるフォームにあります。私がやろうとしているのは、ユーザーがtesteditboat.phpフォームのフィールドbrokernameを変更できるようにすることです.mysqlテーブルbrokerlistからデータを入力するだけでなく、現在のエントリのselect selectedを使用するドロップダウンボックスを使用します.

私のフォームが現在立っている場所は、リクエストを送信し、boatname フィールドの値を変更しますが、brokername フィールドは更新しません。

ご協力いただきありがとうございます。説明が十分になされていることを願っています。

私のtesteditboat.phpフォームのコードは次のとおりです。

<?php

    include_once('db.php');     

    if(isset($_GET['edit']))

    {

    $id = $_GET['edit'];    
    $res= mysql_query("SELECT * FROM boatlist WHERE id='$id'");    
    $row= mysql_fetch_array($res);   
    $brokerlistquery = mysql_query("SELECT * FROM brokerlist");

    }


    if( isset($_POST['newbrokername']) && isset($_POST['newboatname']))    
       {    
         $newbrokername = $_POST['newbrokername'];
         $newboatname = $_POST['newboatname'];     
         $id= $_POST['id'];

         $sql = "UPDATE boatlist SET brokername='$newbrokername', boatname='$newboatname' WHERE id='$id'";

         $res= mysql_query($sql) or die("Could not update".mysql_error());

         echo "<meta http-equiv='refresh' content='0;url=testaddboat.php'>";

    }



?>

<table class="centerwithroom">    
<form action="testeditboat.php" method="POST">    
<tr>    
<td>New Broker Name </td><td>
<select name='newbrokername'>
  <?php
    while ($brokerlistrow = mysql_fetch_array($brokerlistquery)) {
  ?>
<option value="<?php echo $row[brokername]; ?>" <?php if ($row[brokername] == $brokerlistrow[id]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>
<?php } ?> </select>
</td>

<tr>
<td>Boat Name:</td><td><input type="text" name="newboatname" value="<?php echo $row[boatname]; ?>"/></td>
</tr>    

</tr>

<td></td><td><input type="submit" value=" Update "/></td>

</tr>

<input type="hidden" name="id" value="<?php echo $row[id]; ?>"/>    

</form>
</table>
4

2 に答える 2

0

次の行を変更します。

$row= mysql_fetch_assoc($res); //this fetches the array in associative mode

次の行を変更します。

<option value="<?php echo $row[brokername]; ?>" <?php if ($row[brokername] == $brokerlistrow[name]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>

$row[brokername] == $brokerlistrow[id]あなたはどちらが間違っていると思われる比較をしています。比較する必要があります$row[brokername] == $brokerlistrow[name]

注: mysql_* 拡張機能の使用をやめて、代わりに mysqli_ を使用してください*

于 2013-10-29T21:32:14.060 に答える
0

行をに変更することによって

<option value="<?php echo $brokerlistrow[id]; ?>" <?php if ($row[brokername] == $brokerlistrow[id]) { echo selected; } ?> ><?php echo $brokerlistrow[name]; ?></option>
<?php } ?> </select>

正しい値が保存され、編集ドロップダウン ボックスに正しいフォーカスが表示されるようになりました。

皆様ご指導ありがとうございました!:)

于 2013-10-30T15:17:23.300 に答える