php
  • mysql
  • combobox
  • 2015-12-09 51 views 0 likes 
    0

    在此先感謝和抱歉,但我的英語不是很好。 我在更新組合框時遇到問題。我可以讓組合框從表格中載入數據並顯示選定的表格中存儲的記錄,但是在編輯註冊表時,表格將保存爲0(零)。我找不到錯誤。php mysql combobox更新不工作

    這裏的INSERT

    Laboratorio: 
    <select name="lab" size="0"> 
        <?php 
         $sql = 'SELECT * FROM laboratorios order by lab_Nombre asc'; 
         $res = mysql_query($sql); 
         while ($array = mysql_fetch_array($res)) { ?> 
          <option value="<?php echo $array['lab_Id']?>"><?php echo $array['lab_Nombre']?> </option> 
        <?php } ?> 
    </select><br/><br/> 
    

    這裏的組合框代碼的組合框的更新

    Laboratorio: 
    <select name="lab" size="0"> 
        <?php 
         $sqlLab = 'SELECT * FROM laboratorios order by lab_Nombre asc'; 
         $resLab = mysql_query($sqlLab); 
         while ($arrayLab = mysql_fetch_array($resLab)) 
         { ?> 
          <option value=<?php 
              if ($array['ac_Lab']==$arrayLab['lab_Id']) 
              { 
               echo $arrayLab['lab_Id']?> selected="selected"><?php echo $arrayLab['lab_Nombre']?> </option> 
             <?php } 
              else 
              { ?> 
               <option value=<?php echo $arrayLab['lab_Id']?> ><?php echo $arrayLab['lab_Nombre']?> </option> 
             <?php } ?> 
        <?php } ?> 
    </select><br/><br/> 
    

    修改表的代碼是:

    CREATE TABLE IF NOT EXISTS `laboratorios` (
        `lab_Id` smallint(3) NOT NULL AUTO_INCREMENT, 
        `lab_Nombre` varchar(50) NOT NULL, 
        `lab_Contacto` varchar(50) DEFAULT NULL, 
        `lab_Mail` varchar(50) DEFAULT NULL, 
        PRIMARY KEY (`lab_Id`) 
    ) ENGINE=MyISAM AUTO_INCREMENT=42 
    

    未來來自下表:

    `ac_Id` smallint(6) NOT NULL AUTO_INCREMENT, 
    `ac_Desc` varchar(50) NOT NULL, 
    `ac_Cat` varchar(50) NOT NULL, 
    `ac_Lab` smallint(6) NOT NULL, 
    `ac_Apli` varchar(200) NOT NULL, 
    `ac_Prov` smallint(6) NOT NULL, 
    `ac_Alm` smallint(6) NOT NULL, 
    `ac_Vol` smallint(6) NOT NULL, 
    `ac_Dil` varchar(50) DEFAULT NULL, 
    `ac_Img` varchar(50) DEFAULT NULL, 
    `ac_Obs` varchar(200) DEFAULT NULL, 
    PRIMARY KEY (`ac_Id`) 
    

    好的,非常感謝!

    +0

    mysql_函數已被棄用。使用別的東西。另外,打開錯誤報告,你會發現'$ array'在你的「更新」循環中是未定義的。您沒有展示足夠的代碼來提供任何有關如何解決問題的建議。 –

    +0

    非常感謝您的回答。沒有錯誤,只是不進行修改,並將值作爲0離開字段。我使用mysql_functions,因爲這是我現在知道的。如有必要,我可以將整個代碼放在一起...謝謝 – MaxHD

    +0

    沒有錯誤,因爲錯誤報告未打開。打開它或查看你的日誌,你會看到錯誤。 –

    回答

    0

    您現在可以通過切換到PDO或mysqli *函數而不是使用不推薦使用的mysql *函數來節省大量頭痛。

    PDO Manual

    Mysqli Manual

    Why you shouldn't use Mysql_* functions

    是否有可能錯誤是在沒有圍繞​​&我建議來發表您的SQL雙或單引號,但有錯誤報告轉身on一定會有所幫助,以及使用PDO或mysqli,因爲它們目前並未處於積極的發展階段。 (無法發佈的評論,因爲我需要50代表..)

    0

    取出size="0",因爲這可能會改變你的最終數據表單中的

    +0

    我刪除它,那不是問題。謝謝 – MaxHD

    +0

    你可以嘗試在你的表單後收到的數組的print_r?並在這裏發佈?請 –

    0

    看看你正在生成的HTML:

    啓動一個<option>

    <option value=[..snip...] 
    

    做一個測試

    if ($array['ac_Lab']==$arrayLab['lab_Id']) { 
        [..snip..] 
    } else { 
        <option value=<?php echo $arrayLab['lab_Id']?> ><?php echo $arrayLab['lab_Nombre']?> </option> 
        ^^^^^^^^^^^^^---- start ANOTHER option 
    

    對於沒有「選擇」的每一個元素(通常是所有的人,除了一個,你正在構建這樣的:

    <option value=<option value=$someid> 
    

    這是完全非法的HTML。

    +0

    非常感謝!這是個問題! – MaxHD

    0

    在代碼:

    Laboratorio: 
    <select name="lab"> 
        <?php 
         $sqlLab = 'SELECT * FROM laboratorios order by lab_Nombre asc'; 
         $resLab = mysql_query($sqlLab); 
         while ($arrayLab = mysql_fetch_array($resLab)) 
         { ?> 
          <option value=<?php 
              if ($array['ac_Lab']==$arrayLab['lab_Id']) 
              { 
               echo $arrayLab['lab_Id']?> selected="selected"><?php echo $arrayLab['lab_Nombre']?> </option> 
             <?php } 
              else 
              { ?> 
               <option value=<?php echo $arrayLab['lab_Id']?> ><?php echo $arrayLab['lab_Nombre']?> </option> 
             <?php } ?> 
        <?php } ?> 
    </select><br/><br/> 
    

    後的 「其他」 我把<option 更多...

    現在的代碼是:

    Laboratorio: 
    <select name="lab"> 
        <?php 
         $sqlLab = 'SELECT * FROM laboratorios order by lab_Nombre asc'; 
         $resLab = mysql_query($sqlLab); 
         while ($arrayLab = mysql_fetch_array($resLab)) 
         { ?> 
          <option value=<?php 
              if ($array['ac_Lab']==$arrayLab['lab_Id']) 
              { 
               echo $arrayLab['lab_Id']?> selected="selected"><?php echo $arrayLab['lab_Nombre']?> </option> 
             <?php } 
              else 
              { 
               echo $arrayLab['lab_Id']?> ><?php echo $arrayLab['lab_Nombre']?> </option> 
             <?php } ?> 
        <?php } ?> 
    </select><br/><br/> 
    

    非常感謝!

    相關問題