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


Selected in Option Menu when Items Have Hyphens

我有一个选项菜单,我想在从表中读取记录的选择时显示选中。表中的项目有连字符(例如沃尔沃- 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>

证明我上面的代码是正确的。问题出在我导入的数据上。我用的是:

$sqlstatement="LOAD DATA LOCAL inffile '$temp' INTO TABLE accounts字段以',行以''r'结尾忽略1行

结果是,加载的数据在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