【问题标题】:Sql query on PHP problems?关于PHP问题的sql查询?
【发布时间】:2015-02-02 00:43:52
【问题描述】:

很难解释我的问题和我想做什么,但如果你阅读我的代码你就会明白。

当我登录时,我有 $username 作为 cookie,我在这个页面上调用它,它工作。像这样:

<?php 
if (isset($_COOKIE['username'])) 
{ 
    $username = $_COOKIE['username']; 
} 
?> 

现在我想得到这个$username 的id,形成表格users。所以这是我的查询:

<?php 
$sql = "SELECT id FROM users WHERE username = '$username'"; 
$result2 = mysqli_query($mysqli, $sql); 
?>

然后我有下一个查询,我试图在$username id = schedules.id_doc 这是表users 的外键处获得结果。

<?php 
$doc = "SELECT users.emri, users.mbiemri, schedules.visit_date, schedules.visit_time\n" 
    . "FROM schedules\n" 
    . "INNER JOIN users"; 
    . "WHERE schedules.id_doc = '$result2'"; 
$result1 = mysqli_query($mysqli, $doc); 
?> 

所以这不起作用,当我调试它时,它说问题出在 . "WHERE schedules.id_doc = '$result2'";

我不确定我是否可以通过这种方式做到这一点,或者它有其他方式。

【问题讨论】:

  • 删除字符串中的“\n”。 "\n" 不是 sql 命令或在语法中可用。
  • 是的,但它的工作原理是这样的
  • 你忘了放一个 ON 子句。

标签: php mysql sql phpmyadmin


【解决方案1】:

您在. "INNER JOIN users"; 行中有一个;

如果您删除 ;,您的代码将起作用。

另外,您不需要在行尾添加\n

【讨论】:

    【解决方案2】:

    您应该为您的表创建一个别名,但您忘记了ON 子句。您的查询应该是这样的:

    $doc = "SELECT users.emri, users.mbiemri, schedules.visit_date,     
            schedules.visit_time\n" 
           . "FROM schedules A \n" 
           . "INNER JOIN users B ON A.id_doc=B.id" 
           . "WHERE A.id_doc = '$result2'"; 
    

    或者把它放在一行代码中。见下文:

    $doc = "SELECT users.emri, users.mbiemri, schedules.visit_date, schedules.visit_time FROM schedules A INNER JOIN users B ON A.id_doc=B.id WHERE A.id_doc = '$result2'"; 
    

    【讨论】:

    • 您的代码在INNER JOIN 行中有错误的;
    • 我试了没用。当我将 WHERE 放在 // 下时它可以工作,但它不仅会获取我想要的用户的所有数据
    • 尝试将您的代码放在一行中并确定您的查询或编码是否有错误。
    • 它一直在 '. "哪里 A.id_doc = '$result2'"; '
    • 我只是试了一下还是没有:(
    猜你喜欢
    • 2013-05-14
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    相关资源
    最近更新 更多