如何同时显示用户的 ID table?

How to show user's id table along with another?

我正在制作一个论坛,现在我有了这个 table。请看这里:

这个table是给用户的:

create table if not exists login_system(
user_id INT NOT NULL auto_increment,
email VARCHAR(100) NOT NULL,
password VARCHAR(100) NOT NULL,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
gender VARCHAR(50) NOT NULL,
about_yourself VARCHAR(150) NOT NULL,
my_website VARCHAR(100000) NOT NULL,
PRIMARY KEY(user_id)
);

而这个table是为了提问:

create table if not exists thread_question(
question_id INT NOT NULL auto_increment,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
question_title VARCHAR(500) NOT NULL,
question VARCHAR(100000) NOT NULL,
question_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(question_id)
);

我想显示 user's link 如果 he/she 发布 his/her 问题。它必须假设在将鼠标悬停在人员姓名上后提供 link。这样其他人就可以看到 his/her 个人资料信息。

我可以简单地提取一些问题并使用此方法显示到论坛中:

<%
try{
        Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/forum", "root", "1234");
        Statement st=con.createStatement();
        ResultSet rs=st.executeQuery("select * from thread_question where question_id="+question_id);
            while(rs.next()){

                String first_name=rs.getString("first_name");
                String last_name=rs.getString("last_name");
                String thread_title=rs.getString("question_title");
                String thread_question=rs.getString("question");
                String thread_dateTime=rs.getString("question_dateTime");

...
...
...
%>

现在我的愿望是显示 login_system's tablequestion's table 你很清楚我们不能在这里创建两个语句。所以请帮助.. 我想从 login_system table 获得 user_id ,我可以通过单击 link 轻松显示 his/her 个人资料。你能帮我么?怎么做?

您的方法存在各种问题。首先,如评论所述,您不应将连接代码直接放入 JSP。其次,由于 SQL 注入的风险,您不应该通过连接字符串来创建语句。请确保您了解这意味着什么,并使用 PreparedStatement 代替。

为了最终回答你的问题,而不是在 thread_question table 中有名字和姓氏,你应该在 login_system [=20] 中有一个指向 id 的外键=] 然后在 SQL 语句中使用连接。我想如果我把逐字的解决方案贴在这里对你帮助不大。

首先遵循 horse_with_no_name 的建议,出于安全原因,不要将 SQL 代码放入您的 JSP 页面。

另外,请修正您的 grammar/spelling,因为您的问题真的很难阅读。

另一件事是您将要阅读有关规范化数据库结构的内容http://en.wikipedia.org/wiki/Database_normalization

我很清楚如果你愿意,你可以做出不止一个 sql 声明,这只是另一个连接,但在这种情况下你不需要(大多数情况下)

把你的thread_questiontable改成这个

create table if not exists thread_question(

    question_id INT NOT NULL auto_increment,
    user_id id INT NOT NULL,
    first_name VARCHAR(100) NOT NULL,
    last_name VARCHAR(100) NOT NULL,
    question_title VARCHAR(500) NOT NULL,
    question VARCHAR(100000) NOT NULL,
    question_dateTime VARCHAR(100) NOT NULL,
    PRIMARY KEY(question_id)
    );

你要的SQL好像是这样的?

SELECT 
LS.FIRST_NAME,
LS.LAST_NAME,
TQ.question_title,
TQ.question,
TQ.question_dateTime
FROM
login_system as LS
JOIN thread_question as TQ ON
LS.user_id = TQ.user_id

关注 Shifty 解决方案,如果您不想加入 table,那么还有一个解决方案,即 1. 向您发送查询 thread_question 并获取数据。 2. 当您准备页面并提供 userLink 时,您必须在 javascript 中附加悬停事件,它将 userid 作为输入并触发 ajax 调用以获取用户相关数据并使用此数据。