如何同时显示用户的 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 table
和 question'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 调用以获取用户相关数据并使用此数据。
我正在制作一个论坛,现在我有了这个 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 table
和 question'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 调用以获取用户相关数据并使用此数据。