没有从数据库中选择正确的ID

时间:2014-05-07 12:31:00

标签: php mysql mysqli content-management-system

我正在尝试构建一个CMS系统,其中管理员在模板中插入数据。管理员希望使用该模板创建的页面数量可以多。然后应该在带有链接的菜单中访问这些页面,并根据您单击的链接显示相应的数据。

除了系统没有从链接的id中获取数据之外,一切都按预期工作。而是系统从数据库中的最后一个id获取数据。

示例:如果我点击链接页面#2,我将获得网址http://www.website/page.php?pid=2,但加载的内容是数据库中最后一个ID的内容,而不是2。

制作和显示链接的代码:

if (!$_GET['pid']) {
    $pageid = '1';
    } else {
        $pageid = preg_replace('/[^0-9]/', "", $_GET['pid']); // filter everything but numbers for security
    }

    $sqlCommand = "SELECT id, linklabel FROM pages WHERE showing='1' ORDER BY id ASC"; 
    $query = mysqli_query($myConnection, $sqlCommand) or die('Error: ' . mysqli_error($myConnection)); 

    $listadeavatars = '';
    while ($row = mysqli_fetch_array($query)) { 
        $pid = $row["id"];
        $avatar = html_entity_decode($row["linklabel"]);
    } 

    $sqlCommand = "SELECT id, linklabel FROM pages WHERE showing='1' ORDER BY id ASC"; 
    $query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 

    $menuDisplay = '';
    while ($row = mysqli_fetch_array($query)) { 
        $pid = $row["id"];
        $linklabel = $row["linklabel"];
        $avatar = html_entity_decode($row["linklabel"]);

        $menuDisplay .= '<li><a href="page.php?pid=' . $pid . '">' . $avatar . '</a></li>';

    } 
    mysqli_free_result($query);

根据ID

在page.php上显示数据的代码
if (!$_GET['pid']) {
    $pageid = '1';
} else {
    $pageid = ereg_replace("[^0-9]", "", $_GET['pid']); // filter everything but numbers for security
}

$sqlCommand = "SELECT pagetitle, linklabel, evenemang, presentation, producent, pagebody, mapa FROM pages WHERE id='$pid' LIMIT 1";  
    $query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 
    while ($row = mysqli_fetch_array($query)) { 
        $pagetitle = $row["pagetitle"];
        $linklabel = $row["linklabel"];
        $evenemang = $row["evenemang"];
        $presentation = $row["presentation"];
        $producent = $row["producent"];
        $pagebody = $row["pagebody"];
        $mapa = $row["mapa"];
        $avatar = html_entity_decode($row["linklabel"]);
    } 
    mysqli_free_result($query);

如果我需要更好地解释,请告诉我!有什么建议可以解决这个问题?干杯!

1 个答案:

答案 0 :(得分:2)

page.php上,更改WHERE id='$pid'

$sqlCommand = "SELECT pagetitle, linklabel, evenemang, presentation, producent, pagebody, mapa FROM pages WHERE id='$pid' LIMIT 1"; 

WHERE id='$pageid'

$sqlCommand = "SELECT pagetitle, linklabel, evenemang, presentation, producent, pagebody, mapa FROM pages WHERE id='$pageid' LIMIT 1"; 
相关问题