在mysql的选项列表中存储行的id

时间:2015-10-28 16:28:02

标签: php mysql

我将表中一行的属性列表回显到一个选项列表中供用户选择,以后将用于将其插入到另一个表中。我想要做的是,存储“身份证”。该行 - 不是分别使用外键 - 但是' id'我一直在得到的是“id'列表中的最后一行以下是我的代码片段:

        <?php
        $conn = mysqli_connect('localhost', 'root', '', 'database');

          $result = mysqli_query($conn, "SELECT * FROM myTable WHERE region = '{$thisRegion}' ");
          //$result .= " ");
          while ($row = mysqli_fetch_assoc($result))
          {
            $selected = (isset($_POST['list']) && $_POST['list'] ==  $row['id']) ? 'selected' : '';
              echo "<option value='$row[streetAddress] $row[apt] $row[city] $row[zip] $row[_state] $row[country]' $selected >$row[city] $row[zip] $row[_state] $row[country] $row[streetAddress] $row[apt]</option>";
              $thisId= $row['id'];
              $_SESSION["thisId"] = $thisId;
          }
          ?>
        </select>

1 个答案:

答案 0 :(得分:0)

你的问题出在代码上

while ($row = mysqli_fetch_assoc($result))
{
    ...
    $thisId= $row['id'];
    $_SESSION["thisId"] = $thisId;
}

该代码意味着在每次迭代时,$ _SESSION [“thisId”]将被替换为当前行的id,使得在循环结束时只有最后一行的ID将存在。

我认为这样做的方法是将id添加到选项中,并将行打印为显示。

echo "<option value='{$row['id']}'> {$row['apt']} {$row['city']}... </option>";

然后,接收页面可以读取

$selectedRowId = $_GET['optionKey']

我希望有所帮助,你应该阅读更多有关php和表单的内容,因为它会让你的编码更容易。这是一个基本教程http://www.w3schools.com/php/php_forms.asp