项目具有连字符时在选项菜单中选择

时间:2016-08-30 04:06:27

标签: php

我有一个选项菜单,我希望在从表格中读取录制的选项时显示。表中的项目有连字符(例如沃尔沃 - 3638,丰田 - 92131)。问题是我使用strcmp来回显选择存储的值。虽然它将值存储在表中,但是当我创建选项菜单以从先前存储的值更改选项菜单选项时,我无法对值进行回显。我试过==无济于事。我猜这是连字符。有没有一个解决方案,我可以保持连字符和回声选择?这是我的选项菜单:

  <input type="text" name="Activity" class="form-control" id="Activity" value="<?php echo htmlentities($row_Recordset1['Activity'], ENT_COMPAT, 'utf-8'); ?>" required <?php
                if($row_RecordsetTrans['SUM(`transaction`.quantity)'] >0){
                    echo 'readonly';
                            }

                 ?>>
              </div>
              <div class="form-group">
                <label for="Account">Account*</label>

                  <select class="form-control" name="Account" id="Account" required <?php
                if($row_RecordsetTrans['SUM(`transaction`.quantity)'] >0){
                    echo 'readonly';
                }else{
                    echo 'text';
                }

                 ?>>
                <option value="" <?php if (!(strcmp("", $row_Recordset1['Account']))) {echo "selected=\"selected\"";} ?>>select account</option>
                <?php
do {  
?>
                <option value="<?php echo $row_Accounts['acctname']?>"<?php if (!(strcmp($row_Accounts['acctname'], $row_Recordset1['Account']))) {echo "selected=\"selected\"";} ?>><?php echo $row_Accounts['acctname']?></option>
                <?php
} while ($row_Accounts = mysql_fetch_assoc($Accounts));
  $rows = mysql_num_rows($Accounts);
  if($rows > 0) {
      mysql_data_seek($Accounts, 0);
      $row_Accounts = mysql_fetch_assoc($Accounts);
  }
?>
                </select>

1 个答案:

答案 0 :(得分:0)

原来我的代码是正确的。问题出在我导入的数据中。我正在使用:

$ sqlstatement =&#34; LOAD DATA LOCAL INFILE&#39; $ temp&#39; INTO TABLE帐户字段终止于&#39;,&#39;由&#39; \ r&#39;终止的线路IGNORE 1 LINES

事实证明,加载的数据在acctname字段中获得换行符。因此strcmp无法比较数据。

修复是在Terminated by上添加\ n以删除换行符:

$sqlstatement="LOAD DATA LOCAL INFILE '$temp' INTO TABLE accounts FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES