Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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 查询以获取同一表中的2列_Php_Mysql - Fatal编程技术网

Php 查询以获取同一表中的2列

Php 查询以获取同一表中的2列,php,mysql,Php,Mysql,我完全被这段代码卡住了,希望有人能帮我。我有一个数据库,有一个名为“pages”的表,它有5列:id、file\u name link\u name、category、main\u cat。不确定这是否重要,但main_cat的类型为tinytext,文件名为varchar id | file_name | link_name | category | main_cat 1 | books | Books | books | 1 2 | fiction

我完全被这段代码卡住了,希望有人能帮我。我有一个数据库,有一个名为“pages”的表,它有5列:id、file\u name link\u name、category、main\u cat。不确定这是否重要,但main_cat的类型为tinytext,文件名为varchar

id | file_name   | link_name   | category | main_cat 
1  | books       | Books       | books    | 1
2  | fiction     | Fiction     | books    | 2
3  | non-fiction | Non-Fiction | books    | 2
4  | music       | Music       | music    | 1
5  | alternative | Alternative | music    | 2
6  | country     | Country     | music    | 2
在我的导航菜单(下面的代码)中,我希望列出所有主目录(1),然后在下面显示子页面,即手册目录(2)。这是我的代码,现在,我已经尝试了很多不同的方法,包括内部连接和左连接,但不管怎样,我一直收到一个错误,上面写着“警告:mysqli_fetch_assoc()期望参数1是mysqli_result,布尔值在…中给出。”


我认为这与您的第二个查询有关,您可能将其格式化错误。。。我不是专家,但如果我错了,也许其他人可以编辑

由此:

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = {$mainpage["file_name"]}";
为此:

$mainfilename = $mainpage['file_name'];

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = $mainfilename";

我认为这与您的第二个查询有关,您可能将其格式化错误。。。我不是专家,但如果我错了,也许其他人可以编辑

由此:

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = {$mainpage["file_name"]}";
为此:

$mainfilename = $mainpage['file_name'];

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = $mainfilename";

检查您是否连接了正确的数据库,并且您的查询在语法上是否正确

$main\u pages=mysqli\u查询($conn,$query)$conn
设置不正确或查询语法错误,code>将返回布尔值

因此,当您启动mysqli\u fetch\u assoc($main\u pages)
时,它会抛出 “警告:mysqli_fetch_assoc()要求参数1为mysqli_结果,布尔值在…”
正如,
$main\u pages
是布尔值。

检查您是否连接了正确的数据库,以及查询的语法是否正确

$main\u pages=mysqli\u查询($conn,$query)$conn
设置不正确或查询语法错误,code>将返回布尔值

因此,当您启动mysqli\u fetch\u assoc($main\u pages)
时,它会抛出 “警告:mysqli_fetch_assoc()要求参数1为mysqli_结果,布尔值在…”
正如,
$main\u pages
是布尔值。

这会让你心痛:

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = {$mainpage["file_name"]}";
问题是
文件名
周围的
字符被解释为字符串的结尾,PHP的行为不可预测。换句话说,PHP看到了以下情况:

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = {$mainpage["file_name"]}";
      // ^ start string                                                    ^ end     ^s ^end again
请尝试以下选项之一:

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = '{$mainpage['file_name']}'";
$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = '".$mainpage["file_name"]."'";
另外,请注意变量周围的引号——除非
file\u name
实际上是一个数字,否则需要用引号将数据括起来


最后,这可能不言而喻,但您确实需要在这里使用准备好的语句。

这会让您心痛:

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = {$mainpage["file_name"]}";
问题是
文件名
周围的
字符被解释为字符串的结尾,PHP的行为不可预测。换句话说,PHP认为:

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = {$mainpage["file_name"]}";
      // ^ start string                                                    ^ end     ^s ^end again
请尝试以下选项之一:

$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = '{$mainpage['file_name']}'";
$query = "SELECT * FROM pages WHERE main_cat = 2 AND category = '".$mainpage["file_name"]."'";
另外,请注意变量周围的引号——除非
file\u name
实际上是一个数字,否则需要用引号将数据括起来


最后,这可能不言而喻,但您确实需要在这里使用准备好的语句。

您多次调用mysqli_fetch_assoc,哪一个不起作用,第一个?是的,我不需要调用两次,它们是两个不同的查询,我先查询主页,然后查询子页。子页面(第二个)不工作。谢谢$conn在哪里定义的?$conn很好,它在另一个文件中。如果我删除category={$mainpage[“file_name”]},我总是会得到$main_pages的结果,只有在删除category={$mainpage[“file_name”]}的情况下才会得到$sub_pages的结果。但这应该是可行的……我不明白为什么我不能查询数据库来提取category=file_name的$sub_pages。正确的(这里是SQL语句)比任何特别的模式和示例数据格式都更有用。请使用
CREATE TABLE
INSERT。。。的值
。所需的结果不需要以示例代码的形式呈现,因为结果是代码的输出,而不是代码本身。您多次调用mysqli_fetch_assoc,哪一个不起作用,第一个?是的,我不需要调用两次,它们是两个不同的查询,我对主页进行查询,然后对子页进行查询。子页面(第二个)不工作。谢谢$conn在哪里定义的?$conn很好,它在另一个文件中。如果我删除category={$mainpage[“file_name”]},我总是会得到$main_pages的结果,只有在删除category={$mainpage[“file_name”]}的情况下才会得到$sub_pages的结果。但这应该是可行的……我不明白为什么我不能查询数据库来提取category=file_name的$sub_pages。正确的(这里是SQL语句)比任何特别的模式和示例数据格式都更有用。请使用
CREATE TABLE
INSERT。。。的值
。所需的结果不需要以示例代码的形式呈现,因为结果是代码的输出,而不是代码本身。谢谢。如果连接不正确,我将不会得到任何结果,但我确实得到$main_页面的结果。我没有得到的是$sub_页面的结果,其中category=file\u name…如果您的连接正常,那么尝试打印查询并在phpmyadmin中激发,问题将被跟踪。将第二个查询更改为“从main_cat=2和category like的页面中选择*”$主页[“文件名]。”;谢谢如果连接不正确,我将不会得到任何结果,但我确实得到$main_页面的结果。我没有得到的是$sub_页面的结果,其中category=file\u name…如果您的连接正常,那么尝试打印查询并在phpmyadmin中激发,问题将被跟踪。将第二个查询更改为“从main_cat=2和category like的页面中选择*”$主页[“文件名]。”;不确定该如何编写,但尝试执行我在上面编辑的操作…?第一个选项需要在数据周围加引号,并使用
I