我做了一个图书馆管理系统。我正试图打印学生问题书,但SQL查询遇到了问题。下面是用户。用于打印发行书籍的php代码。我也上传了数据库,方便大家参考。请帮忙。
使用者php
<?php
session_start();
$username = $_SESSION['var'];
include ("connection.php");
?>
<html>
<head>
<title>User </title>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
</head>
<body>
<?php echo "<h2>" . $username . "</h2>";
?>
<table class="w3-table-all w3-card-4">
<tr>
<th>Book Name </th>
<th>Issue Date</th>
<th>Submit Date</th>
</tr>
<?php
$query="select isbn, issuedt, submitdt from passbook INNER JOIN usertable on usertable.username='$username' where passbook.id=(usertable.username= '$username') ";
$result= mysqli_query($sql, $query);
while($row=$result-> fetch_assoc())
{
echo "<tr><td>". $row["isbn"]. "</td><td>". $row["issuedt"]. "</td><td>". $row["submitdt"]."</td><tr>";
}
echo "</table>";
?>
</table>
</body>
</html>
以下是图书馆管理系统的数据库。
-- phpMyAdmin SQL Dump
-- version 4.7.9
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Apr 29, 2018 at 03:31 PM
-- Server version: 10.1.31-MariaDB
-- PHP Version: 7.2.3
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `library`
--
CREATE DATABASE IF NOT EXISTS `library` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `library`;
-- --------------------------------------------------------
--
-- Table structure for table `book`
--
CREATE TABLE `book` (
`isbn` varchar(13) NOT NULL,
`bookname` varchar(30) NOT NULL,
`author` varchar(30) NOT NULL,
`bookid` int(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- RELATIONSHIPS FOR TABLE `book`:
-- `bookid`
-- `type` -> `bookid_type`
--
--
-- Dumping data for table `book`
--
INSERT INTO `book` (`isbn`, `bookname`, `author`, `bookid`) VALUES
('100', 'harry potter', 'j k rowling', 1);
-- --------------------------------------------------------
--
-- Table structure for table `passbook`
--
CREATE TABLE `passbook` (
`pid` int(200) NOT NULL,
`user_id` int(200) NOT NULL,
`isbn` varchar(13) NOT NULL,
`issuedt` date NOT NULL,
`submitdt` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- RELATIONSHIPS FOR TABLE `passbook`:
-- `user_id`
-- `usertable` -> `id`
-- `isbn`
-- `book` -> `isbn`
--
--
-- Dumping data for table `passbook`
--
INSERT INTO `passbook` (`pid`, `user_id`, `isbn`, `issuedt`, `submitdt`) VALUES
(2, 0, '100', '2018-04-04', '2018-04-26');
-- --------------------------------------------------------
--
-- Table structure for table `type`
--
CREATE TABLE `type` (
`bookid_type` int(30) NOT NULL,
`name` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- RELATIONSHIPS FOR TABLE `type`:
--
--
-- Dumping data for table `type`
--
INSERT INTO `type` (`bookid_type`, `name`) VALUES
(1, 'Magic');
-- --------------------------------------------------------
--
-- Table structure for table `usertable`
--
CREATE TABLE `usertable` (
`id` int(200) NOT NULL,
`name` varchar(30) NOT NULL,
`username` varchar(30) NOT NULL,
`password` varchar(10) NOT NULL,
`dateofbirth` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- RELATIONSHIPS FOR TABLE `usertable`:
--
--
-- Dumping data for table `usertable`
--
INSERT INTO `usertable` (`id`, `name`, `username`, `password`, `dateofbirth`) VALUES
(0, 'Priyanka', 'priyanka', 'priyanka', '2018-03-04'),
(1, 'puru', 'puru', 'puru', '2018-03-05');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `book`
--
ALTER TABLE `book`
ADD PRIMARY KEY (`isbn`),
ADD UNIQUE KEY `bookid` (`bookid`);
--
-- Indexes for table `passbook`
--
ALTER TABLE `passbook`
ADD PRIMARY KEY (`pid`),
ADD UNIQUE KEY `isbn_number` (`isbn`),
ADD KEY `user_id` (`user_id`);
--
-- Indexes for table `type`
--
ALTER TABLE `type`
ADD PRIMARY KEY (`bookid_type`);
--
-- Indexes for table `usertable`
--
ALTER TABLE `usertable`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `passbook`
--
ALTER TABLE `passbook`
MODIFY `pid` int(200) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- Constraints for dumped tables
--
--
-- Constraints for table `book`
--
ALTER TABLE `book`
ADD CONSTRAINT `book_ibfk_1` FOREIGN KEY (`bookid`) REFERENCES `type`
(`bookid_type`) ON UPDATE CASCADE;
--
-- Constraints for table `passbook`
--
ALTER TABLE `passbook`
ADD CONSTRAINT `passbook_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES
`usertable` (`id`) ON UPDATE CASCADE,
ADD CONSTRAINT `passbook_ibfk_2` FOREIGN KEY (`isbn`) REFERENCES `book`
(`isbn`) ON DELETE CASCADE;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
数据库是这样关联的:-usertable将id作为主键。Book将isbn作为主键,bookid作为外键。类型将bookid作为主键。存折的外键为isbn,主键为uid。我想显示存折,其中会显示存折名称以及发行日期和提交日期。因此,我必须从两个不同的表中获取两个数据,使用isbn号从boo表中获取图书名称,并从usertable中获取用户ID,我必须对passbook表运行userid以查找相关条目。
你的查询应该更像是...
$query="select passbook.isbn, issuedt, submitdt, bookname
from passbook
INNER JOIN usertable on usertable.id=passbook.user_id
INNER JOIN book on passbook.isbn = book.isbn
where usertable.username= '$username' ";
这将存折上的user_id链接到usertable id,并在where子句中选择要限制的用户。
添加到books表的链接意味着将passbook isbn链接到book isbn字段。需要记住的一点是,isbn位于两个被选择的表上,因此请记住将其添加到所选字段中(我使用了passbook中的一个,尽管它们都是相同的)。
(虽然您应该使用准备好的语句来选择bu用户名。)
问题内容: 对于SQL Server 2000_ 对于给定的表“ foo”,我需要一个查询来生成一组表,这些表具有指向foo的外键。 问题答案: SELECT o2.name FROM sysobjects o INNER JOIN sysforeignkeys fk on o.id = fk.rkeyid INNER JOIN sysobjects o2 on fk.fkeyid = o2.id
null null 表名: ISBN->外键 authorid->外键 既然Linq-to-SQL会根据外键关系自动创建属性,为什么下面的代码块不会触发智能感知呢?对我来说不是... 它不允许我添加照片,但“author”与AuthorISBN有“一对多”关系,“titles”也与AuthorISBN有“一对多”关系 代码:
我们系统的所有用户都来自一个主“用户”类。同样,我们希望以相同的方式构造数据库,拥有一个主“用户”表,该表与特定用户类型的必要表连接,以提供额外的用户信息。 以这三个基本表格为例: 表用户 user_id|user_email|user_firstname|user_lastname|... 表雇员 user_id|employee_staff_number|... 表管理 user_id|adm
有人能帮我学习SQL吗?我正在使用Oracle SQL*plus 创建以下表。 表: stdNo CHAR(5)这是主键 表
问题内容: 问题 我需要更好地了解有关何时可以在子查询中引用外部表以及何时(以及为什么)不适当的请求的规则。我在尝试重构的Oracle SQL查询中发现一个重复项,但是当我尝试将引用的表转换为分组的subQuery时遇到了问题。 以下语句可以正常工作: 不幸的是table2有时会有重复的记录,因此在将t2加入t1之前,我需要先对其进行汇总。但是,当我尝试将其包装在子查询中以完成此操作时,SQL引擎
问题内容: 我是RestKit的新手,正在挣扎。 JSON: 核心数据: 我的应用程序逻辑如下所示: 我一生都无法解决如何使RestKit填充用户对象的团队Property的问题。 我看过这么多帖子,但是我没有尝试,这不是通常的用例吗? 有谁知道该怎么做,帮助将不胜感激! 谢谢。 问题答案: 您需要向持有关联的实体添加一个临时属性。这需要添加到您的中。 然后,您需要为您添加一个关系定义: 这将为R