2010-06-28 30 views
2

一直試圖小時這個PHP嵌入在HTML,但什麼是錯的,因爲我得到一個錯誤:

解析錯誤:語法錯誤,在C意想不到的$結束:\ Program Files文件\ XAMPP \ htdocs \ profile.php on line 678

<select value='$pays' name='pays' id='pays' style='width: 204px;margin-bottom: 5px; outline-width:0;'> 
<?php 
$result = mysql_query("SELECT pays_az, pays_zz, pays_or FROM in_lays WHERE pays_flush = '1' ORDER BY pays_nom ASC"); 
while ($row = mysql_fetch_array ($result)) 
{ ?> 
    <option value="<?php echo $row['dd']; ?>" 

    <?php if($row['dd_id'] == $pays) 
    { 
     echo 'selected="selected" ' ; 
    } 
    else 
    { 
      if($row['dd_id'] == "61") 
     { 
     echo 'selected="selected"' ; 
     } 
    } 
?>><?php echo $row['lala']; ?></option> 
<?php}?> 

</select> 

不注意sql請求中的名稱。

+2

哪條線是678線? – oezi 2010-06-28 07:36:31

+0

它是整個頁面的代碼?如果不是,請提供完整的代碼。 – Himadri 2010-06-28 07:39:57

+1

@Himadri粘貼678行代碼似乎過多。 – 2010-06-28 08:01:59

回答

3

Маке

<?php}?> 

<?php } ?> 

如果在第一行$支付PHP變量。如果是 - 請回應

+0

是的!謝謝GOsha,它是 tetris 2010-06-28 07:45:09

3

錯誤消息「unexpected $ end」意味着一個或多個塊沒有正確關閉,就像關閉}丟失一樣。但你的代碼似乎是正確的。你應該看看你的其他控制結構,看看是否一切都在它的位置。


編輯我想我明白了:雖然你的代碼似乎是語法正確,則<?php}?>是什麼解析器扼流圈。使其成爲<?php }?>,它應該工作。

+0

@Oded:No:''。 – Gumbo 2010-06-28 07:37:44

+0

@Oded不,它不會丟失... – Himadri 2010-06-28 07:38:46

+0

錯過了它......無視我... – Oded 2010-06-28 07:39:11

4

變化<?php}?><?php } ?>,我認爲是問題(你應該真的嘗試格式化你的代碼更好,這是一個恐怖來讀取。)

編輯: 沒有改變太多,我會格式化您的代碼是這樣的:

<select value="<? echo $pays; ?>" name="pays" id="pays" style="width: 204px;margin-bottom: 5px; outline-width:0;"> 
    <? 
    $result = mysql_query(" 
      SELECT 
       pays_az, 
       pays_zz, 
       pays_or 
      FROM 
       in_lays 
      WHERE 
       pays_flush = '1' 
      ORDER BY 
       pays_nom ASC 
      "); 
    while($row = mysql_fetch_array($result)){ 
    ?> 
     <option value="<? echo $row['dd']; ?>" 
      <? 
      if($row['dd_id'] == $pays || $row['dd_id'] == "61"){ 
       echo ' selected="selected"'; 
      } 
      ?> 
     ><? echo $row['lala']; ?></option> 
    <? 
    } 
    ?> 
</select> 

注意:我使用(邪惡)短的php標籤,但你可以改變它。我在與ifwhile-陳述相同的語氣中寫入開頭{,並且不要使用太多空格(但取決於個人偏好)。重要的是縮進你的代碼以便可讀。

+0

你能解釋爲什麼不工作? – Himadri 2010-06-28 07:49:44

+0

你會如何格式化它? @Himadri,它只是需要空間來識別php標籤的解析器,它必須作爲一個實體來使用 – tetris 2010-06-28 08:18:17

+0

@Himadri:作爲tada提到的,編譯器在開始標籤之後需要一個空格 - @tada:看看我的編輯 – oezi 2010-06-28 08:30:44

1

你沒有關閉,同時適當嘗試:

<select value='$pays' name='pays' id='pays' style='width: 204px;margin-bottom: 5px; outline-width:0;'> 
<?php 
$result = mysql_query("SELECT pays_az, pays_zz, pays_or FROM in_lays WHERE pays_flush = '1' ORDER BY pays_nom ASC"); 

while ($row = mysql_fetch_array ($result)): ?> 

<option value="<?php echo $row['dd']; ?>" 

<?php if($row['dd_id'] == $pays) 
{ 
    echo 'selected="selected" ' ; 
} 
else 
{ 
    if($row['dd_id'] == "61") 
    { 
     echo 'selected="selected"' ; 
    } 
} 
?> 

<?php echo $row['lala']; ?></option> 

<?php endwhile; ?> 

</select> 
+1

哦..好...我不知道這個替代語法.. – Himadri 2010-06-28 07:48:18

+0

沒問題.... 我認爲總是使用 ' while(....)endwhile; ' – 2010-06-28 11:00:43

相關問題