Php 更新表时出错

Php 更新表时出错,php,mysql,sql,codeigniter-2,Php,Mysql,Sql,Codeigniter 2,我有一个问题: 我的数据库中有两个表: articles: id useid title users id name surname 我的看法是: Author<select name="author" id="author"> <?php foreach ($users as $u): ?> <option value="<?p

我有一个问题: 我的数据库中有两个表:

articles:
id  useid  title
users
id  name  surname
我的看法是:

 Author<select name="author" id="author">
                            <?php foreach ($users as $u): ?>
                                <option value="<?php $u['id'] ?>" <?php if($u['id']==$a['userid']): ?> selected="selected" <?php endif ?> style="width:300px"><?php echo $u['name'] ?> <?php echo $u['surname'] ?></option>
                            <?php endforeach; ?>
        </select>
        <p><b>Content:</b></p>
        <textarea name="content" id="content" style="width:605px; height: 300px;" rows="200"><?php echo $a['content']; ?></textarea>
当我这样做时,我得到了错误1452:无法添加或更新子行:外键约束失败(
myblog
articles
,约束
articles\u ibfk\u 1
外键(
userid
)引用
admindetails
id
)在更新级联时删除级联)
伙计们,请帮帮我……

在这种情况下,这意味着
$author
变量包含
admindetails
表中不存在的id(如果是数字)

错误消息似乎准确地说明了问题所在:更新的
文章。userid
与任何
admindetails.id
值都不匹配。。列/关系名称似乎“奇怪”。(另请参见)在问题的开头,您说您的表名为
users
,但您的错误消息表明
userid
引用了名为
admindetails
的表。这两张桌子不同吗?是否可能是您设置了引用错误表的外键?存在此idI make的用户:$author=$this->input->post('author');用户表的名称是什么?是“管理细节”吗??正如@GarethD提到的,如果您的用户表不是“admindetails”,则外键可能是错误的。我在必须写入的选项值中发现了错误:)
<option value="<?php $u['id'] ?>" <?php if($u['id']==$a['userid']): ?> selected="selected" <?php endif ?> style="width:300px"><?php echo $u['name'] ?> <?php echo $u['surname'] ?></option>
<option value="<?php $u['id'] ?>" <?php if($u['id']==$a['userid']): ?> selected="selected" <?php endif ?> style="width:300px"><?php echo $u['name'] ?> <?php echo $u['surname'] ?></option>