使用解析错误从下拉列表中的数据库返回结果

时间:2014-12-18 10:05:50

标签: 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 :(得分:2)

试试这个

if($row['CompanyID'] == $Merchant) {echo 'selected = "selected"';}对我来说,你似乎忘记了if语句中的花括号

答案 1 :(得分:1)

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

您可以在here上的PHP文档中阅读有关三元运算符的更多信息。

答案 2 :(得分:0)

请检查此主题并执行以下操作if block inside echo statement?

在你的情况下它应该是这样的

. if($row['CompanyID'] == $Merchant) echo 'selected

更改为此

.(($row['CompanyID']==$Merchant)?'selected

答案 3 :(得分:0)

你可以这样写,看起来更清楚

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