0

更新至以下:

我稍微更改了代码并且取得了一些成功,但我仍然在做一件事。我换了行

<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 [brokername] => 6 [2] => Kims Boat [boatname] => Kims Boat )

该选定用户的正确 brokerlist.id 是 6,但不是将 6 保存到boatlist.name,而是保存了 brokerlist.name 字段而不是 brokerlist.id。

我可以改变什么让它保存 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 从这里开始)

这是我的第一篇文章,我会尽量做到详尽。这只是一个基本的形式,我根本没有在其中添加任何安全性,因为我只是想让它工作,然后开始其余的 :) 对我的代码编程的新手可能对你们中的一些专家和我来说看起来很糟糕会喜欢你能举出的任何例子。

进入项目。我有两个 mysql 表,一个称为 brokerlist,有两个字段 id 和 name。第二个表称为boatlist,包含三个字段id、brokername 和boatname。brokername 字段包含 brokerlist.id 字段的值和输入的文本船名。

我已经创建了 php 添加表单来将数据添加到正常工作的两个表中。我创建了一个 php 编辑表单来编辑正常工作的代理表。我的问题在于我称之为testitboat.php 的形式。我想要做的是允许用户使用从 mysql 表代理列表填充的下拉框更改 testitboat.php 表单中的字段代理名,但也使用当前条目的选择。

我的表单当前所在的位置是它提交请求并将更改船名字段中的任何值,但不会更新经纪人名称字段。

非常感谢大家的帮助,我希望我已经足够描述了。

我的 testitboat.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

通过将行更改为

<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 回答
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 回答