php - 如何使用 PHP 表单从多个表中检索数据?

标签 php html mysql database mysqli

我想使用点运算符/连接从多个表中检索数据,其中参数是从 HTML/PHP 表单传递的。

HTML 代码

<input name="rollno" type="text" placeholder="Roll Number" required>
<input name="submit_view_details" type="submit" value="Proceed">

PHP 代码

if(isset($_POST['submit_view_details']))
{
    $rollno = (int) $_POST['rollno'];
    $query = "select * from table1, table2 where table1.{$rollno}=table2.{$rollno}";
    $result=mysqli_query($connection,$query);
}

在浏览器中,如果输入 1 并回显此查询,则如下所示:
从 table1、table2 中选择 *,其中 table1.1=table2.1

尽管表中有数据,但没有获取任何行。

它仅在查询如下时有效:
从 table1,table2 中选择*,其中 table1.rollno=table2.rollno

但是,在这种情况下,它会获取所有行,但我只需要用户在上述表单中输入的 rollno 行。

我就是无法解决这个问题。非常感谢您的帮助。谢谢!

最佳答案

使用AND关键字指定rollno。

SELECT * FROM table1, table2 WHERE table1.rollno = table2.rollno 
AND table1.rollno = {$rollno};

您可以使用关键字JOIN来代替,如下所示:

SELECT * FROM table1 NATURAL JOIN table2 
WHERE rollno = {$rollno};

关于php - 如何使用 PHP 表单从多个表中检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29941495/

相关文章:

php 将所有链接转换为绝对 url

javascript - Javascript 中的函数 (F1)

javascript - 使用 Javascript 创建测验页面

mysql - Infinidb -"` CREATE_TIMESTAMP` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"给出错误

php - 将左连接限制为返回一个结果?

javascript - Shadowbox - 提交 php 表单后自动关闭

php - 使用 SQL 计算表中前几行的值

php - 使用文本字段和复选框查询数据库

javascript - 使用PreloadJS加载图像并将其添加到CreateJS阶段

mysql - 从 MySQL 中的多个表中获取匹配项