草庐IT

php - MySQL更新记录,但页面显示不显示新数据

coder 2023-10-20 原文

我正在为 CRUD 用户详细信息编写应用程序。我通过查询用户表开始页面 - 并使用数据填充页面中的各种表单元素(并检查重复项)。所有表单提交都提交到同一页面。

添加、删除和修改记录按预期工作 - 但问题在于页面上显示的数据在提交更改后不会相应更新 - 我必须重新访问页面才能查看相关更改。

try{
    $user_sql = "SELECT user_ID, user_firstname,user_surname,user_email,user_type FROM users";
    $user_stmt = $db->prepare($user_sql);
    $user_stmt->execute();
    $user_data = $user_stmt->fetchAll(PDO::FETCH_NAMED);
    $i++;
}catch(PDOException $e){
    echo "Error: cannot retrieve user data from the data base";
}

/*
 * DELETE USER
 */
if(isset($_POST['deleteUser'])){
$_SESSION['deleteUser']=true;
}
if(isset($_POST['submitDeleteUserConfirm'])){
//process query
    if($_POST['deleteUserConfirm']=='yes'){
        $deleteRange=implode(',',$_POST['deleteUser']);
        $deleteSql = 'DELETE FROM users WHERE ID_users IN (' . $deleteRange . ')';

        try{$q = $db->prepare($deleteSql);
        $q->execute();
         }
        catch(PDOException $e){
            echo '<p>System Error: '. $e->getMessage() .'</p>';
            }
        }
//once confirmation has been processed:
//remove session trigger to hide confirmation form
    if(isset($_SESSION['deleteUser'])){
        unset($_SESSION['deleteUser']);
    }
}
if(isset($_SESSION['deleteUser'])){
?>
    <fieldset class="radiobox">
        <legend>Confirm</legend>
        <div>
            <label for="deleteUserYes">Yes</label>
            <input type="radio" class="radio" name="deleteUserConfirm" id="deleteUserYes" value="yes">
        </div>
        <div>
            <label for="deleteUserNo">No</label>
            <input type="radio" class="radio" name="deleteUserConfirm" id="deleteUserNo" value="no" checked>
        </div>
    <input type="submit" name="submitDeleteUserConfirm" value="Confirm">
    </fieldset>
<?php
 }
//small function to output all the elements of an array as checkboxes
$delStudentRollOpts = array(
    'key'=>'users',
    'sticky'=>true,
    'data'=>array(
        'values'=>$user_data,# USES DATA FROM START OF SCRIPT - NOT UPDATING ON PAGE REFRESH/FORM SUBMISSION
        'name'=>array('user_firstname','user_surname')
    ),
    'element_name'=>'delStudRoll_'.$n,
    'types'=>array('checkbox'=>array('title'=>'&nbsp;',
                                 'name'=>'deleteUser',
                                 'index'=>'ID_users'
        ))
    );
echo $GA_form->generateRoll($delStudentRollOpts);
echo '<input type="submit" class="submit" name="submitDeleteUser_'.$n.'" value="Delete">';
echo '</fieldset>';
echo '</form>';

这是一项正在进行的工作,因此需要大量重构...

从用户的角度:

1:输入新数据

2:提交表单

3:从 MySQL 控制台检查数据库 - 插入新数据

4:没有显示新数据

5:再次访问页面-出现新数据(刷新会触发错误尝试重新提交重复值)

有人知道发生了什么事吗?目前我正在考虑使用标题重定向回页面的想法......

最佳答案

if(form_submitted) {
    update_database()
}

fetch_data();

<form></form>

关于php - MySQL更新记录,但页面显示不显示新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2128692/

有关php - MySQL更新记录,但页面显示不显示新数据的更多相关文章

  1. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

    我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  4. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  5. ruby-on-rails - link_to 不显示任何 rails - 2

    我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article

  6. ruby-on-rails - 如何在 Rails View 上显示错误消息? - 2

    我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c

  7. ruby-on-rails - Rails 5 Active Record 记录无效错误 - 2

    我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa

  8. ruby-on-rails - 复数 for fields_for has_many 关联未显示在 View 中 - 2

    目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi

  9. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  10. ruby-on-rails - 在 Flash 警报 Rails 3 中显示错误消息 - 2

    如果我在模型中设置验证消息validates:name,:presence=>{:message=>'Thenamecantbeblank.'}我如何让该消息显示在闪光警报中,这是我迄今为止尝试过的方法defcreate@message=Message.new(params[:message])if@message.valid?ContactMailer.send_mail(@message).deliverredirect_to(root_path,:notice=>"Thanksforyourmessage,Iwillbeintouchsoon")elseflash[:error]

随机推荐