Php 关系数据库查询失败
我非常接近于解决从表中获取一些数据的问题,基本上我有一个用户表、一个类别表和一个连接表,其中外键分配给用户表中的用户id,而cat id则从cats表中获取 我基本上想显示不同的类别,如果它们已分配给您,在我的数据库中的联接表中,我可以选择一个用户id和cat id,并且在一行中有自己的id。我所面临的问题是,在登录时,如何根据用户id显示这些类别 以下是我目前的代码:Php 关系数据库查询失败,php,mysql,Php,Mysql,我非常接近于解决从表中获取一些数据的问题,基本上我有一个用户表、一个类别表和一个连接表,其中外键分配给用户表中的用户id,而cat id则从cats表中获取 我基本上想显示不同的类别,如果它们已分配给您,在我的数据库中的联接表中,我可以选择一个用户id和cat id,并且在一行中有自己的id。我所面临的问题是,在登录时,如何根据用户id显示这些类别 以下是我目前的代码: <?php require ('../db_con.php'); error_reporting(E_ALL)
<?php
require ('../db_con.php');
error_reporting(E_ALL);
ini_set('display_errors', '1');
// BUILD AND DISPLAY THE CATEGORY LIST (RICOH BUILD)
function build_cat_list()
{
global $dbc;
$user = $_SESSION['user'];
$q = sprintf("
SELECT
count(*)
FROM
cats
INNER JOIN
user_cat_join
ON
cats.cat_id = user_cat_join.cat_id
WHERE
user_cat_join.user_id = '%s'
",
mysqli_real_escape_string($dbc, $user)
);
$r = mysqli_query ($dbc, $q); // Run the query.
// FETCH AND PRINT ALL THE RECORDS
while ($row = mysqli_fetch_array($r)) {
echo '
<a href="view_cat.php?cat_id='.$row["cat_id"].'">
<div class="indexBox"">
<div class="indexBoxHeader" style="background-color:'.$row["cat_color"].'"><p>'
.$row["cat_icon"].'</p>
</div>
<div class="indexBoxFooter">
<p>'.$row["cat_name"].'</p>
</div>
</div>
</a>';
}
}
?>
当然,上面的变量指的是底部的部分,在那里它实际渲染出了框。如果我使用count(*)
,它只会显示这些未定义的变量,但如果我指定它们,如cat\u name、cat\u color等,我将一无所获,也没有错误?使用以下方法运行查询:
$r = mysqli_query($dbc,$q)
or die ("Couldn't execute query: ".mysqli_error($dbc));
这将为您提供查询所遇到错误的报告,您可以相应地调整查询
按照RiggFoly所说的更改查询,并检查$user值是否正确
根据您的注释,您正在向脚本中的查询传递一个不同于您在phpmyadmin中测试的值。代码中的$user可能是:
$r = mysqli_query($dbc,$q)
or die ("Couldn't execute query: ".mysqli_error($dbc));
这将为您提供查询所遇到错误的报告,您可以相应地调整查询
按照RiggFoly所说的更改查询,并检查$user值是否正确
根据您的注释,您正在向脚本中的查询传递一个不同于您在phpmyadmin中测试的值。代码中的$user可能是:
$r = mysqli_query($dbc,$q)
or die ("Couldn't execute query: ".mysqli_error($dbc));
这将为您提供查询所遇到错误的报告,您可以相应地调整查询
按照RiggFoly所说的更改查询,并检查$user值是否正确
根据您的注释,您正在向脚本中的查询传递一个不同于您在phpmyadmin中测试的值。代码中的$user可能是:
$r = mysqli_query($dbc,$q)
or die ("Couldn't execute query: ".mysqli_error($dbc));
这将为您提供查询所遇到错误的报告,您可以相应地调整查询
按照RiggFoly所说的更改查询,并检查$user值是否正确
根据您的注释,您正在向脚本中的查询传递一个不同于您在phpmyadmin中测试的值。代码中的$user可能是:
使用代码中回显的$user值在phpmyadmin中运行查询,您将了解您的情况。更改查询以选择实际要使用的列
$q = sprintf("
SELECT
cats.cat_id,cat_color,cat_icon, cat_name
FROM cats
INNER JOIN user_cat_join
ON cats.cat_id = user_cat_join.cat_id
WHERE user_cat_join.user_id = '%s'
",
mysqli_real_escape_string($dbc, $user) );
在这里最好使用事先准备好的语句,但要保持简单 更改查询以选择实际要使用的列
$q = sprintf("
SELECT
cats.cat_id,cat_color,cat_icon, cat_name
FROM cats
INNER JOIN user_cat_join
ON cats.cat_id = user_cat_join.cat_id
WHERE user_cat_join.user_id = '%s'
",
mysqli_real_escape_string($dbc, $user) );
在这里最好使用事先准备好的语句,但要保持简单 更改查询以选择实际要使用的列
$q = sprintf("
SELECT
cats.cat_id,cat_color,cat_icon, cat_name
FROM cats
INNER JOIN user_cat_join
ON cats.cat_id = user_cat_join.cat_id
WHERE user_cat_join.user_id = '%s'
",
mysqli_real_escape_string($dbc, $user) );
在这里最好使用事先准备好的语句,但要保持简单 更改查询以选择实际要使用的列
$q = sprintf("
SELECT
cats.cat_id,cat_color,cat_icon, cat_name
FROM cats
INNER JOIN user_cat_join
ON cats.cat_id = user_cat_join.cat_id
WHERE user_cat_join.user_id = '%s'
",
mysqli_real_escape_string($dbc, $user) );
在这里最好使用事先准备好的语句,但要保持简单 您的查询仅从…中选择
count(*)
->选择count(*)。那么你认为这些列名来自哪里呢。。。注意:会话已经启动了吗?与其使用mysqli\u real\u escape\u字符串及其bre,不如使用准备好的语句。从长远来看,它们更容易使用@Fred ii-嘿,是的,我的会话正在我的标题中启动,该标题包含在页面上。您的查询仅从…
中选择计数(*)
->选择计数(*)。那么你认为这些列名来自哪里呢。。。注意:会话已经启动了吗?与其使用mysqli\u real\u escape\u字符串及其bre,不如使用准备好的语句。从长远来看,它们更容易使用@Fred ii-嘿,是的,我的会话正在我的标题中启动,该标题包含在页面上。您的查询仅从…
中选择计数(*)
->选择计数(*)。那么你认为这些列名来自哪里呢。。。注意:会话已经启动了吗?与其使用mysqli\u real\u escape\u字符串及其bre,不如使用准备好的语句。从长远来看,它们更容易使用@Fred ii-嘿,是的,我的会话正在我的标题中启动,该标题包含在页面上。您的查询仅从…
中选择计数(*)
->选择计数(*)。那么你认为这些列名来自哪里呢。。。注意:会话已经启动了吗?与其使用mysqli\u real\u escape\u字符串及其bre,不如使用准备好的语句。从长远来看,它们更容易使用@Fred ii-嘿,是的,我的课程在