【发布时间】:2015-08-10 13:46:56
【问题描述】:
好的,这是 MySQL 表结构:
CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(1) NOT NULL AUTO_INCREMENT,
`username` varchar(25) NOT NULL,
`email` varchar(35) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
CREATE TABLE IF NOT EXISTS `papers` (
`p_id` int(1) NOT NULL AUTO_INCREMENT,
`user_id` int(1) NOT NULL,
`p_name` varchar(70) NOT NULL,
`p_authors` varchar(70) NOT NULL,
`p_cauthor` varchar(30) NOT NULL,
`p_jname` varchar(50) NOT NULL,
`p_date` varchar(10) NOT NULL,
`p_url` varchar(50) NOT NULL,
UNIQUE KEY `p_url` (`p_url`),
KEY `Foreign_Key` (`p_id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=62 ;
ALTER TABLE `papers`
ADD CONSTRAINT `papers_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`);
使用这个 PHP/MySQL 查询,它只返回最后插入的行,我想列出所有这些:
$result = mysql_query("SELECT u.username, p.p_url FROM users AS u INNER JOIN papers AS p ON p.user_id = u.user_id WHERE u.username='{$_SESSION['user']}'");
$output = mysql_fetch_assoc($result);
if(is_array($output)) { ...
print_r ($output);
print_r 只报告一个数组元素,一个最后插入的元素,我需要将它们全部列出。我的查询有问题,但我不知道是什么问题。谢谢。
【问题讨论】:
-
来自文档
mysql_fetch_assoc()Fetch **a** result row as an associative array。你需要把它放在一个循环中才能得到更多 -
请阅读有关使用 PDO 或 mysqli 而不是 mysql_ 的信息。学习和适应其中任何一种都非常容易,而且它们更安全。您正在使用的扩展程序已被弃用,也将被删除。 w3schools.com/php/php_mysql_connect.asp
-
@ShaneLessard 不要链接到
w3schools当你可以链接到 php 文档MySQL: choosing an API - http://php.net/manual/en/mysqlinfo.api.choosing.php