Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 - Fatal编程技术网

Php 关系数据库查询失败

Php 关系数据库查询失败,php,mysql,Php,Mysql,我非常接近于解决从表中获取一些数据的问题,基本上我有一个用户表、一个类别表和一个连接表,其中外键分配给用户表中的用户id,而cat id则从cats表中获取 我基本上想显示不同的类别,如果它们已分配给您,在我的数据库中的联接表中,我可以选择一个用户id和cat id,并且在一行中有自己的id。我所面临的问题是,在登录时,如何根据用户id显示这些类别 以下是我目前的代码: <?php require ('../db_con.php'); error_reporting(E_ALL)

我非常接近于解决从表中获取一些数据的问题,基本上我有一个用户表、一个类别表和一个连接表,其中外键分配给用户表中的用户id,而cat id则从cats表中获取

我基本上想显示不同的类别,如果它们已分配给您,在我的数据库中的联接表中,我可以选择一个用户id和cat id,并且在一行中有自己的id。我所面临的问题是,在登录时,如何根据用户id显示这些类别

以下是我目前的代码:

<?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可能是:

  • 要在查询中输入的错误值
  • 正确的值,但它没有数据
  • 在phpmyadmin中使用代码中回显的$user值运行查询,您将了解您的情况。

    使用以下方法运行查询:

    $r = mysqli_query($dbc,$q)
    or die ("Couldn't execute query: ".mysqli_error($dbc));
    
    这将为您提供查询所遇到错误的报告,您可以相应地调整查询

    按照RiggFoly所说的更改查询,并检查$user值是否正确

    根据您的注释,您正在向脚本中的查询传递一个不同于您在phpmyadmin中测试的值。代码中的$user可能是:

  • 要在查询中输入的错误值
  • 正确的值,但它没有数据
  • 在phpmyadmin中使用代码中回显的$user值运行查询,您将了解您的情况。

    使用以下方法运行查询:

    $r = mysqli_query($dbc,$q)
    or die ("Couldn't execute query: ".mysqli_error($dbc));
    
    这将为您提供查询所遇到错误的报告,您可以相应地调整查询

    按照RiggFoly所说的更改查询,并检查$user值是否正确

    根据您的注释,您正在向脚本中的查询传递一个不同于您在phpmyadmin中测试的值。代码中的$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-嘿,是的,我的课程在