php中的语句语法分析错误,缺少某些内容

php中的语句语法分析错误,缺少某些内容,php,mysql,Php,Mysql,我试图在从数据库中的另一个表检索到的下拉列表中回显数据库中字段的值,但我一直得到解析错误:语法错误,意外的T_IF 我知道我在括号中遗漏了逗号,但我似乎看不到 <?php $result1 = mysql_query("SELECT `CompanyID`, `Name` FROM `company`") or trigger_error(mysql_error()); while($row1 = mysql_fetch_array($result1)) {

我试图在从数据库中的另一个表检索到的下拉列表中回显数据库中字段的值,但我一直得到解析错误:语法错误,意外的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>";
        } 
 ?>
不能像在字符串中的代码那样使用if。它什么也不返回。使用以下命令:

$sValue = boolean_value ? 'value if TRUE' : 'value if FALSE';
   echo "<option value=" . nl2br( $row1['CompanyID']) . " ";
   if($row['CompanyID'] == $Merchant){ echo 'selected = "selected"'};
   echo ">" . nl2br( $row1['Name']) . "</option>";
这叫做三元运算符。PHP文档链接:

如下所示进行更改,例如:

 <?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);
           } 

           $sSel = ($row['CompanyID'] == $Merchant) ? 'selected = "selected"' : '';

           echo "<option value=" . nl2br( $row1['CompanyID']) . " ".sSel.">" . nl2br( $row1['Name']) . "</option>";
        } 
 ?>
但我当然更喜欢我给你们介绍的第一个解决方案。

你们的假设是错误的。使用以下命令:

$sValue = boolean_value ? 'value if TRUE' : 'value if FALSE';
   echo "<option value=" . nl2br( $row1['CompanyID']) . " ";
   if($row['CompanyID'] == $Merchant){ echo 'selected = "selected"'};
   echo ">" . nl2br( $row1['Name']) . "</option>";
您可以这样做:

echo 'something ' . ( true ? 'statement is true' : 'statement is false') . ' continue echo';

所有的错误都被删除了

更正代码:

<?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) {
        $CompanyID = stripslashes($value1);
        $CompanyID = nl2br($CompanyID);
        $selected  = ($CompanyID == $Merchant) ? 'selected = "selected"' : '';

        echo '<option value="' . nl2br( $CompanyID) . '"' . $selected . '></option>';
    }
}
?>

在下拉列表中返回了5次相同的结果plus没有返回名称,导致其丢失,并且它选择了错误的名称解析错误:语法错误、意外的“}”、预期的“,”或“;”谢谢,但它仍然给出了解析错误:语法错误,意外的“}”,预期的“,”或“;”@在威奇线?