从下拉列表中返回数据库结果,并带有解析错误
我想从数据库中的另一个表中检索下拉列表中的字段值形式的数据库,但我不断收到解析错误:语法错误,意外的T_IF
 <?php
      $result1 = mysql_query("SELECT `CompanyID`, `Name` FROM `company`") or trigger_error(mysql_error());
      while($row1 = mysql_fetch_array($result1)) { 
           foreach($row1 AS $key1 => $value1) {
                $row1[$key1] = stripslashes($value1);
           } 
           echo "<option value=" . nl2br( $row1['CompanyID']) . " ". if($row['CompanyID'] == $Merchant) echo 'selected = "selected"'
        . ">" . nl2br( $row1['Name']) . "</option>";
        } 
 ?>
在echo语句中,你应该使用一个三元运算符,它基本上是一个缩短的IF / Else语句。
这是带三元运算符的代码:
<?php
  $result1 = mysql_query("SELECT `CompanyID`, `Name` FROM `company`") or trigger_error(mysql_error());
  while($row1 = mysql_fetch_array($result1)) {
      foreach($row1 AS $key1 => $value1) {
          $row1[$key1] = stripslashes($value1);
      }
      echo "<option value='" . nl2br( $row1['CompanyID']) . "' ". (($row['CompanyID'] == $Merchant)?' selected ':''). ">" . nl2br( $row1['Name']) . "</option>";
    }
?>
您可以在这里阅读更多关于PHP文档中的三元运算符。
尝试这个
  if($row['CompanyID'] == $Merchant) {echo 'selected = "selected"';}对我来说,它看起来像你忘记了你的if语句中的大括号 
请检查此线程并如下操作,如果在回声声明中阻塞?
在你的情况下,它应该是这样的
. if($row['CompanyID'] == $Merchant) echo 'selected
改成这个
.(($row['CompanyID']==$Merchant)?'selected
上一篇: returning result from database in drop down list with parse error
下一篇: parse error in php for the statement syntax, missing something
