不要从选择的mysql数据库中检索选定的值

时间:2015-12-03 07:43:32

标签: php mysqli

我试图从数据库中选择选定的值,但由于某种原因它不起作用。 我不知道我需要改变什么,我使用函数在数据库中存储文章,我使用相同的函数来获取在数据库中选择的文章。 功能artikli:

function article() {
  $link = new mysqli("localhost", "xxx", "xxx", "xxx");
  $link->set_charset("utf8");
  $sql=mysqli_query($link, "SELECT * FROM `artikli` ORDER BY `Id` ASC ");
  echo '<option value="">Select article: </option>';
  while($record=mysqli_fetch_array($sql)){
  echo '<option value= "' .$record['Id']. '">' . $record['ArtCode'] ."-|-". $record['ArtName'] . ' </option>';
} 
}

在插入表单中,此功能可以工作并插入文章。现在,在编辑表单中,我想要一篇插入的文章。 首先,我从另一个表中检索文章,然后获得价值。

 $article = $r['ArtPalArticle'];

我得到了前任。值18.所有值都是整数。

$article = 18;

<div class="col-xs-12">
  <label>Article</label>
  <select class="form-control" name="article" value = "<?php echo $article; selected?>">
    <option value=<?php echo $article?> selected></option>
    <?php article(); ?>
  </select>                                       
</div> 

任何人都可以给我提示,我是否需要更改功能或者我错过了以下代码功能。对我来说,保持功能相同并在选择部分

中更改下面的代码会更好

2 个答案:

答案 0 :(得分:1)

您需要在函数中比较id和插入的id。你可以试试这个 -

function article($articleId = null) {
  $link = new mysqli("localhost", "xxx", "xxx", "xxx");
  $link->set_charset("utf8");
  $sql=mysqli_query($link, "SELECT * FROM `artikli` ORDER BY `Id` ASC ");
  echo '<option value="">Select article: </option>';
  while($record=mysqli_fetch_array($sql)){
      echo '<option value= "' .$record['Id']. '" ' . ((!empty($articleId) && $articleId == $record['Id']) ? 'selected' : '' ) . '>' . $record['ArtCode'] ."-|-".     $record['ArtName'] . ' </option>';
  } 
}

和HTML

<div class="col-xs-12">
  <label>Article</label>
  <select class="form-control" name="article">
    <?php 
    if(!empty($article)) { // at the time of edit
       article($article); 
    } else {
       article();
    }
    ?>
  </select>                                       
</div>

答案 1 :(得分:0)

    <?php

    function article( $article_id='' )
        {
            $link = new mysqli("localhost", "xxx", "xxx", "xxx");
            $link->set_charset("utf8");
            $sql=mysqli_query($link, "SELECT * FROM `artikli` ORDER BY `Id` ASC ");

            echo '<option value="">Select article: </option>';

            while($record=mysqli_fetch_array($sql))
                {
                    if( !empty($article_id) )
                        {
                            if( $record['Id'] == $article_id )
                                echo '<option value= "' .$record['Id']. '" selected>' . $record['ArtCode'] ."-|-". $record['ArtName'] . ' </option>';
                            else
                                echo '<option value= "' .$record['Id']. '">' . $record['ArtCode'] ."-|-". $record['ArtName'] . ' </option>';
                        }
                    else
                        {
                            echo '<option value= "' .$record['Id']. '">' . $record['ArtCode'] ."-|-". $record['ArtName'] . ' </option>';
                        }
                }
        }

    ?>



    <div class="col-xs-12">
      <label>Article</label>
      <select class="form-control" name="article" id="article">
        <?php article( $article ); ?>
      </select>                                       
    </div>