前端 - java web操作数据库的问题
高洛峰
高洛峰 2017-04-17 13:39:56
[MySQL讨论组]

我想实现类似segmentfault关注问题的功能,从数据库中循环输出活动表的内容,在输出的时候遍历另一张用户活动表,这张表存着用户参加过哪些活动。如果参加过,就显示已参加,否则显示未参加。
遇到的问题:在循环显示出的活动中,用户按从上到下的顺序点击参加活动,能正常工作,但是用户随机点击参加活动,就显示不出已参加的样式,我的程序有什么问题,请大家帮忙看看,该如何解决。
<%

            java.sql.Connection conn = null;
            java.lang.String strConn;
            java.sql.Statement sqlStmt = null;
            java.sql.ResultSet sqlRst = null;
            java.sql.ResultSet sqlatt = null;
            try {
                conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/yueba", "root", "123456");
                sqlStmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
                String sqlQuery = "select * from activity order by ID DESC";
                sqlRst = sqlStmt.executeQuery(sqlQuery);
                sqlStmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
                String queryatt = "select activity.*,attend.* from activity,attend where activity.ID=attend.actid order by activity.ID desc";
                sqlatt = sqlStmt.executeQuery(queryatt);
                while (sqlRst.next()) {                       
                    int flag=0;
                    String dbpubuser = sqlRst.getString("pubuser");
                    String dbtitle = sqlRst.getString("title");
                    String dbdetail = sqlRst.getString("detail");
                    int dbid = sqlRst.getInt("ID");
                    Timestamp subtime = sqlRst.getTimestamp("datetime");
                    while (sqlatt.next()) {
                        String dbattuser=sqlatt.getString("attuser");
                        int dbactid = sqlatt.getInt("actid");
                        if ((dbid == dbactid)&&(username.equals(dbattuser))) {
        %>
        <p class="jumbotron" style="padding-top: 20px;padding-bottom: 20px;margin-bottom: 15px;">
            <p><font color="green" size="5px"><%=dbpubuser%></font></p>
            <hr>
            <h3><font color="#0099CC"><%=dbtitle%></font></h3>
            <p><font size="4px"><%=dbdetail%></font></p>
            <form>
                <input type="hidden" name="actid" value="<%=dbid%>">                   
                <button  type="button" class="btn btn-success">已参加</button>
                <p style="margin-left: 700px;margin-top: -40px"><font size="3px"><%=subtime%></font></p>
            </form>               
        </p>
        <%
                    flag=1;
                    break;
                }
            }
            if(flag==0){
        %>
        <p class="jumbotron" style="padding-top: 20px;padding-bottom: 20px;margin-bottom: 15px;">
            <p><font color="green" size="5px"><%=dbpubuser%></font></p>
            <hr>
            <h3><font color="#0099CC"><%=dbtitle%></font></h3>
            <p><font size="4px"><%=dbdetail%></font></p>
            <form action="attend" method="post">
                <input type="hidden" name="actid" value="<%=dbid%>">
                <input type="hidden" name="pubuser" value="<%=dbpubuser%>">
                <button type="submit" class="btn btn-primary">参加活动</button>
                <p style="margin-left: 700px;margin-top: -40px"><font size="3px"><%=subtime%></font></p>
            </form>               
        </p>
        <%}
                }
            } catch (java.sql.SQLException e) {
                out.println(e.toString());
            } finally {
                if ((sqlRst != null) && (sqlatt != null)) {
                    try {
                        sqlRst.close();
                        sqlatt.close();
                    } catch (java.sql.SQLException el) {
                        out.println(el.toString());
                    } finally {
                        try {
                            if (sqlStmt != null) {
                                sqlStmt.close();
                            }
                        } catch (java.sql.SQLException e2) {
                            out.println(e2.toString());
                        } finally {
                            try {
                                if (conn != null) {
                                    conn.close();
                                }
                            } catch (java.sql.SQLException e3) {
                                out.println(e3.toString());
                            }
                        }
                    }
                }
            }
        %>
        这是未参加时:![图片描述][1]
        这是参加活动后:![图片描述][2]
        
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
阿神

通过一个字段(isRead)来判断用户是否阅读过比较好。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号