我无法获得以下代码来显示parent_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>';
}
我想我知道我做错了怎么能让这个查询检查以前的查询?
答案 0 :(得分:1)
我将SQL查询放在var中,以便您可以输出它,然后在数据库中直接尝试查看是否有任何匹配的行:
$mysqli = new mysqli("localhost", "root", "", "sitename");
$query = "SELECT * FROM categories WHERE id=parent_id";
echo $query;
答案 1 :(得分:0)
我认为这条线应该重新思考:
if ($row['parent_id'] == $row['id']) {
原因你确定它是正确的逻辑吗?
答案 2 :(得分:0)
尝试做类似的事情:
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!";
}
看看问题实际上是不是在SQL查询中,而是在你的app逻辑中(我认为更有可能)。
那就是尝试使用phpMyAdmin调试SQL查询。只需发布您想要的查询并检查输出。如果输出正常,请查看您的逻辑,如果没有查看您的查询。
尝试将问题分成更小的块,使调试更容易。
希望它有所帮助。