在php中将数据库中的内容获取到表单时遇到问题

在php中将数据库中的内容获取到表单时遇到问题,php,html,mysql,css,mysqli,Php,Html,Mysql,Css,Mysqli,我一直在[thedigitalcraft.com][1]上学习一系列教程,建立我的第一个动态网站。我最近关注了他的第15条,我认为我非常关注,但由于某种原因,应该显示的内容不是在我运行页面时显示的。没有错误,这几乎就像我的一条sql语句出错,或者它无法连接到我的phpMyAdmin数据库。我正在构建一个用于编辑每个页面的用户界面,一个控制面板。我在XAMPP本地主机上运行,顺便说一句,在dreamweaver中工作。为什么我的内容没有显示在表单中?我知道我已连接到数据库。。我已经粘贴了pages

我一直在[thedigitalcraft.com][1]上学习一系列教程,建立我的第一个动态网站。我最近关注了他的第15条,我认为我非常关注,但由于某种原因,应该显示的内容不是在我运行页面时显示的。没有错误,这几乎就像我的一条sql语句出错,或者它无法连接到我的phpMyAdmin数据库。我正在构建一个用于编辑每个页面的用户界面,一个控制面板。我在XAMPP本地主机上运行,顺便说一句,在dreamweaver中工作。为什么我的内容没有显示在表单中?我知道我已连接到数据库。。我已经粘贴了pages.php和index.php中的代码

1. pages.php:

<?php ## Page Manager ?>

<h2>Page Manager</h2>

<div class="col sidebar">

    <ul>

        <?php

           $q = "SELECT * FROM pages ORDER BY name ASC"; 
           $r = mysqli_query($dbc, $q);

           if ($r)
           {
                while($link = mysqli_fetch_assoc($r))
                {
                    echo '<li><a href="?page=pages&id='.$link['id'].'">'.$link['name'].'</a></li>';
                }
           }

        ?>

    </ul>

</div>

<div class="col editor">

    <?php if (isset($_GET['id'])) {

            $q = "SELECT * FROM pages WHERE id = '$_GET(id)' LIMIT 1";
           // the database connection, our query
            $r = mysqli_query($dbc, $q);
            $opened = mysqli_fetch_assoc($r);

    ?>

        <form action="#" method="post">

            <p><label>Page title: </label><input type="text" size="30" name="title" value="<?php echo $opened['title']?>"></p>
            <p><label>Page name:</label> <input type="text" size="30" name="name" value="<?php echo $opened['name']?>"></p> 

            <label>Page body:</label><br>
            <textarea name="body" cols="30" rows="8"><?php echo $opened['body'] ?></textarea>

        </form>

    <?php } ?>

</div>

index.php:

<?php
error_reporting(0);
// Setup document:
include('config/setup.php');
?>

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title><?php //echo $page_title; ?>JakeForDesign - Admin Panel</title>

<link rel="stylesheet" type="text/css" href="css/styles.css">

</head>

<body>

<div class="wrap_overall">

    <div class="header"> <?php head(); ?> </div>

    <div class="nav_main"> <?php nav_main(); ?> </div>

    <div class="content"> <?php include('content/'.$pg.'.php'); ?> </div>

    <div class="footer"> <?php footer(); ?> </div>

</div>    

</body>
</html>

2. index.php:

<?php
error_reporting(0);
// Setup document:
include('config/setup.php');
?>

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title><?php //echo $page_title; ?>JakeForDesign - Admin Panel</title>

<link rel="stylesheet" type="text/css" href="css/styles.css">

</head>

<body>

<div class="wrap_overall">

    <div class="header"> <?php head(); ?> </div>

    <div class="nav_main"> <?php nav_main(); ?> </div>

    <div class="content"> <?php include('content/'.$pg.'.php'); ?> </div>

    <div class="footer"> <?php footer(); ?> </div>

</div>    

</body>
</html>

3. setup.php(for connection to database)

<?php
## Setup Document

// host(or location of the database), username, //password, database name

$dbc = @mysqli_connect('localhost', 'root', 'password', 'database') OR die ('Could not connect to the database because: '. mysqli_connect_error() );

include('Functions/sandbox.php');
include('Functions/template.php');

if ($_GET['page'] == '')
{
    $pg = 'home';       
}
else
{
    $pg = $_GET['page'];
}

$page_title = get_page_title($dbc, $pg);

?>
1。pages.php:
页面管理器
index.php: JakeForDesign-管理面板 2.index.php: JakeForDesign-管理面板 3.php(用于连接到数据库)
这是错误的

 $q = "SELECT * FROM pages WHERE id = '" . $_GET['id'] . "' LIMIT 1";
这很好


如果是数值,不要忘记使用intval()对其进行保护

您是否正在导航到
index.php?page=pages
?您的页面中似乎缺少一个include.php到您的setup.php文件$\u GET(id)应该是$\u GET['id'],您肯定应该清理您的输入。你可以查看准备好的声明。此外,请谨慎使用@。你不应该隐瞒错误。相反,要避免一开始就产生错误。虽然intval将简化为数字,但最好建议准备好的语句。另外,中断字符串与保持原样是一样的,因为双引号将按预期解析变量。天哪,我真是太蠢了!几个小时都浪费在这个小错误上了哈哈!谢谢大家!!特别是zeflex和kai Qing。我还将研究如何使用准备好的语句。
 $q = "SELECT * FROM pages WHERE id = '" . $_GET['id'] . "' LIMIT 1";