Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何根据另一个字符串的值获取表值?_Php_Mysql_Database - Fatal编程技术网

Php 如何根据另一个字符串的值获取表值?

Php 如何根据另一个字符串的值获取表值?,php,mysql,database,Php,Mysql,Database,我不确定我是否使用了上面正确的术语,但我想做的是以下几点。。。 如何让$author在文章的$author\u id与用户id匹配的基础上输出用户名(来自mySQL用户选项卡) <?php include "inc/mysql-connect.php"; $DynamicFeed = ""; $sql = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT 20"); $postCount = mysql_num_rows($

我不确定我是否使用了上面正确的术语,但我想做的是以下几点。。。 如何让$author在文章的$author\u id与用户id匹配的基础上输出用户名(来自mySQL用户选项卡)

<?php 
include "inc/mysql-connect.php"; 
$DynamicFeed = "";
$sql = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT 20");
$postCount = mysql_num_rows($sql); // count the output amount
if ($postCount > 0) {
  while($row = mysql_fetch_array($sql)){ 
    $id = $row["id"];
    $title = $row["title"];
    $post = $row["post"];
    $author_id = $row["author_id"];
    $author = $row["author_id"];
    $type = $row["type"];
    $date_posted = $row["date_posted"];
    $DynamicFeed .= "<div class=\"item\"><img class=\"img-type\" align=\"left\"       src=\"img/$type.jpg\"> <p><a href=\"droplet.php?id=$id\"><b>$title</b></a><br />by <a    href=\"profile.php?id=$author_id\">$author</a> on $date_posted<br /><br /> $post</p>    </div>";
}
} else {
$DynamicFeed = "It would appear that there ar'nt any Droplets here...";
}
?> 

您可以按如下方式使用JOIN语句:

$sql = mysql_query("SELECT posts.*,users.name FROM posts LEFT JOIN users on posts.author_id=users.id ORDER BY posts.id DESC LIMIT 20");

可以按如下方式使用JOIN语句:

$sql = mysql_query("SELECT posts.*,users.name FROM posts LEFT JOIN users on posts.author_id=users.id ORDER BY posts.id DESC LIMIT 20");

如果我理解正确,您应该在查询中直接执行此操作(而不是在while循环中),方法是加入用户表:

SELECT * FROM posts LEFT JOIN <user-table> ON <user-table>.id=author_id ORDER BY id DESC LIMIT 20"
SELECT*FROM posts LEFT JOIN ON.id=author\u id ORDER BY id DESC LIMIT 20“

然后直接在$row数组中获取数据。如果两个表中的列名相同,则可能需要添加别名。

如果我理解正确,您应该在查询中直接执行此操作(而不是在while循环中),方法是加入用户表:

SELECT * FROM posts LEFT JOIN <user-table> ON <user-table>.id=author_id ORDER BY id DESC LIMIT 20"
SELECT*FROM posts LEFT JOIN ON.id=author\u id ORDER BY id DESC LIMIT 20“

然后直接在$row数组中获取数据。如果两个表中的列名相同,则可能需要添加别名。

在SQL语句中使用
JOIN
在SQL语句中使用
JOIN
,请让我做一个测试:)目前这将失败,因为您还需要更改
ORDER BY id DESC
以引用表名,如
ORDER BY post.id DESC
,因为
id
本身是不明确的。@danielb-Back,哦,它与“ORDER BY id DESC”完美配合:3我是否应该将其更改为更新后的代码?这是一种更整洁的方式吗如果两个表中都有“id”列,则需要指明要按哪个表的id排序。如果它按原样工作,则意味着两个表中都没有“id”。我还是会加进去的。好的,谢谢。在我把这个作为答案之前,还有最后一件事。除了这个查询,我如何做完全相同的事情$sql=mysql_查询(“从帖子中选择*,其中id='$id'限制1”);啊,太棒了,让我来测试一下:)目前这将失败,因为您还需要更改
ORDER BY id DESC
以引用表名,如
ORDER BY post.id DESC
,因为
id
本身是不明确的。@danielb-Back,哦,它与“orderbyid DESC”完美结合:3我是否应该将其更改为更新的代码?这是一种更整洁的方式吗如果两个表中都有“id”列,则需要指明要按哪个表的id排序。如果它按原样工作,则意味着两个表中都没有“id”。我还是会加进去的。好的,谢谢。在我把这个作为答案之前,还有最后一件事。除了这个查询,我如何做完全相同的事情$sql=mysql_查询(“从帖子中选择*,其中id='$id'限制1”);当前这将失败,因为您还需要更改
ORDER BY id DESC
以引用表名,如
ORDER BY post.id DESC
,因为
id
本身是不明确的。当前这将失败,因为您还需要更改
ORDER BY id DESC
以引用表名,如
ORDER BY post.idDESC
因为
id
本身是不明确的。