MySQL和PHP显示问题?

MySQL和PHP显示问题?,php,mysql,Php,Mysql,我无法获取以下代码来显示父id等于id的数据库中的项目 下面是代码 // Query member data from the database and ready it for display $mysqli = new mysqli("localhost", "root", "", "sitename"); $dbc = mysqli_query($mysqli,"SELECT * FROM categories WHERE id=parent_id"); if (!$dbc) { //

我无法获取以下代码来显示父id等于id的数据库中的项目

下面是代码

// Query member data from the database and ready it for display
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT * FROM categories WHERE id=parent_id");

if (!$dbc) {
// There was an error...do something about it here...
print mysqli_error();
}

while ($row = mysqli_fetch_assoc($dbc)) {
echo '<li><a href="' , $row['url'] , '" title="' , $row['description'] , '">' , $row['category_name'] , '</a>';
   }
//从数据库中查询成员数据并准备好显示
$mysqli=newmysqli(“本地主机”、“根”、“站点名”);
$dbc=mysqli_query($mysqli,“从id=parent_id的类别中选择*);
如果(!$dbc){
//有一个错误…在这里做点什么。。。
打印mysqli_错误();
}
while($row=mysqli\u fetch\u assoc($dbc)){
回音“
  • ”; }

  • 我想我知道我做错了什么我怎么能让这个查询检查以前的查询?

    我想这行应该重新考虑一下:

    if ($row['parent_id'] == $row['id']) {
    

    原因你确定这是正确的逻辑吗?

    我认为这一行应该重新思考:

    if ($row['parent_id'] == $row['id']) {
    

    原因您确定这是正确的逻辑吗?

    我将SQL查询放在一个变量中,以便您可以输出它,然后直接在数据库中尝试此操作,查看是否有匹配的行:

    $mysqli = new mysqli("localhost", "root", "", "sitename");
    $query = "SELECT * FROM categories WHERE id=parent_id";
    echo $query;
    

    我将SQL查询放在一个变量中,以便您可以输出它,然后直接在数据库中尝试此操作,查看是否有匹配的行:

    $mysqli = new mysqli("localhost", "root", "", "sitename");
    $query = "SELECT * FROM categories WHERE id=parent_id";
    echo $query;
    

    尝试执行以下操作:

    if ($row['parent_id'] == $row['id']) {
        echo '<li><a href="' , $row['url'] , '" title="' , $row['description'] , '">' , $row['category_name'] , '</a>';
    }
    else {
        echo "there is no match!";
    }
    
    if($row['parent\u id']==$row['id'])){
    回音“
  • ”; } 否则{ 回声:“没有对手!”; }
  • 看看问题是否不是在SQL查询中,而是在你的应用程序逻辑中(我认为更可能)

    也就是说,尝试使用调试SQL查询。只需将您想要的查询发布到那里并检查输出。如果输出正常,请查看您的逻辑,否则请查看您的查询

    试着把你的问题分成更小的部分,这样你的调试就容易多了


    希望能有所帮助。

    尝试做以下事情:

    if ($row['parent_id'] == $row['id']) {
        echo '<li><a href="' , $row['url'] , '" title="' , $row['description'] , '">' , $row['category_name'] , '</a>';
    }
    else {
        echo "there is no match!";
    }
    
    if($row['parent\u id']==$row['id'])){
    回音“
  • ”; } 否则{ 回声:“没有对手!”; }
  • 看看问题是否不是在SQL查询中,而是在你的应用程序逻辑中(我认为更可能)

    也就是说,尝试使用调试SQL查询。只需将您想要的查询发布到那里并检查输出。如果输出正常,请查看您的逻辑,否则请查看您的查询

    试着把你的问题分成更小的部分,这样你的调试就容易多了


    希望有帮助。

    您能为我们提供更多信息吗?就像exaclty不起作用一样。您还可以在while循环中ommit if语句,因为您只选择parent_id等于id的行。类别是否有一个名为“parent_id”的列?或者parent_id是提供给查询的参数吗?categories有一个parent_id字段。代码似乎很好,请尝试直接从mysql运行查询,以便确保有与where子句匹配的记录。我同意这似乎很奇怪。我成功了。谢谢大家的帮助。你能给我们提供更多的信息吗?就像exaclty不起作用一样。您还可以在while循环中ommit if语句,因为您只选择parent_id等于id的行。类别是否有一个名为“parent_id”的列?或者parent_id是提供给查询的参数吗?categories有一个parent_id字段。代码似乎很好,请尝试直接从mysql运行查询,以便确保有与where子句匹配的记录。我同意这似乎很奇怪。我成功了。谢谢大家的帮助。@adam。。这件事真让我抓狂。。我的意思是,我不太理解这里的双重检查,也不理解查询的逻辑。@adam。。这件事真让我抓狂。。我的意思是,我并不真正理解这里的双重检查,以及查询的逻辑。