2014-12-18 2 views
0

데이터베이스의 다른 테이블에서 검색 한 드롭 다운 목록의 데이터베이스 필드 형식의 값을 반향하려고 시도하지만 계속 구문 분석 오류가 발생합니다. 구문 오류, 예기치 T_IF 당신이 그랬던 것처럼 당신은 if을 사용할 수 없습니다구문 오류에 대한 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); 
      } 

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

답변

0

내가 쉼표로 괄호 안에 뭔가가 있어요,하지만 나는 그것을 볼 수없는 것 알고

, 당신의 코드 (문자열). 그것은 아무것도 반환하지 않습니다. 이것을 사용하십시오 :

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

"삼원 연산자"라고합니다. 당신이 원하는 경우에

<?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을 사용할 수 있지만, 다른 방법으로 : 예를 들어,이 같은

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

변경을 : PHP의 문서는 링크

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

그러나 나는 분명히 내가 제시 한 첫 번째 해결책을 선호한다.

0

If이 잘못되었습니다. 이 옵션을 사용합니다 :

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

구문 분석 오류 : 구문 오류 ','기대 '}'예기치 않은 또는 ';' –

+0

@ karmacat 내 대답을 업데이트했습니다 – Jens

+0

고마워하지만 여전히 구문 오류 : 구문 오류, 예기치 못한 '}', 예상 ','또는 ';' –

0

을 당신은 다음과 같이 수행 할 수 있습니다

echo 'something ' . (true ? 'statement is true' : 'statement is false') . ' continue echo'; 
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>'; 
    } 
} 
?> 
+0

은 동일한 결과를 드롭 다운 목록에서 5 번 반환했습니다. –

+0

더하기 누락 된 이름을 반환하지 않으며 잘못된 이름을 선택합니다. –

관련 문제