php mysql combobox更新不行

时间:2015-12-09 20:34:01

标签: php mysql combobox

提前致谢并抱歉,但我的英语不是很好。 我在更新组合框时遇到了问题。我可以让组合框加载来自表的数据并显示选择存储在表中的记录,但在编辑注册表时,表保存为0(零)。我找不到错误。

这是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/>

以下是UPDATE组合框的代码

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`)

好的,非常感谢!!

4 个答案:

答案 0 :(得分:0)

现在切换到PDO或mysqli *函数,而不是使用不推荐使用的mysql *函数,可以省去很多麻烦。

PDO Manual

Mysqli Manual

Why you shouldn't use Mysql_* functions

错误是否可能在<?php echo $arrayLab['lab_Id']?>&amp;周围没有双引号或单引号。我建议发布您的SQL,但启用错误报告肯定会有所帮助,以及使用PDO或mysqli,因为它们目前尚未进行积极开发。 (不能发表评论,因为我需要50个代表..)

答案 1 :(得分:0)

删除size="0",因为这可能会修改表格中的最终数据

答案 2 :(得分: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。

答案 3 :(得分: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/>

非常感谢!!