【问题标题】:returning result from database in drop down list with parse error从下拉列表中的数据库返回结果,解析错误
【发布时间】:2015-02-17 02:02:43
【问题描述】:

我试图在从数据库的另一个表中检索的下拉列表中回显该字段的值,但我不断收到 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>";
        } 
 ?>

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    试试这个

    if($row['CompanyID'] == $Merchant) {echo 'selected = "selected"';} 在我看来,您似乎忘记了 if 语句中的大括号

    【讨论】:

    • 您忘记正确关闭回显:'; 丢失
    • 是的,现在应该没问题了
    【解决方案2】:

    在 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 文档中有关三元运算符的更多信息。

    【讨论】:

    • 它选择列表中的最后一个而不是表中的那个
    • @karmacat 您的数据库填写正确吗?以及如何获得 $Merchant 变量?
    • 我认为您在 value 之后缺少单引号,例如 value='"..'"
    • @Templar 我尝试回显 $merchant 变量和 $row1[CompanyID] 它们工作正常,它为所有这些设置选择
    • @karmacat 你能发布php如何呈现选项吗?我也再次更新了我的代码,所以如果你可以尝试新代码
    【解决方案3】:

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

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

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

    改成这个

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-04
        • 2013-01-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多