在php中解析语句语法错误,遗漏了一些东西

时间:2014-12-18 08:19:42

标签: php mysql

我正在尝试从数据库中的另一个表中检索的下拉列表中回显数据库中字段的值,但我不断收到Parse错误:语法错误,意外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>";
        } 
 ?>

4 个答案:

答案 0 :(得分:0)

您不能像在代码中那样使用if(在字符串中)。它什么都不返回。使用此:

$sValue = boolean_value ? 'value if TRUE' : 'value if FALSE';

它被称为“三元运算符”。 PHP文档链接:

http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary

像这样改变它,例如:

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

如果您愿意,也可以使用if,但以其他方式:

if($row['CompanyID'] == $Merchant) {
    $sSel = 'selected = "selected"';
} else {
    $sSel = '';
}

但我当然更喜欢我提交给你的第一个解决方案。

答案 1 :(得分:0)

您的If错了。使用此:

   echo "<option value=" . nl2br( $row1['CompanyID']) . " ";
   if($row['CompanyID'] == $Merchant){ echo 'selected = "selected"'};
   echo ">" . nl2br( $row1['Name']) . "</option>";

答案 2 :(得分:0)

你可以这样做:

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

答案 3 :(得分:0)

所有错误都被删除了。

更正代码:

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