【问题标题】:Can't pick up data from database无法从数据库中提取数据
【发布时间】:2014-04-30 06:06:12
【问题描述】:

我正在尝试构建一个系统,在该系统中,用户以表单的形式生成网页内容,保存在数据库中,列出数据库中存在的所有页面,然后单击该列表编辑所需的页面。

唯一不工作的是编辑部分。似乎我无法从数据库中获取数据,因为当我单击页面进行编辑时,“模板”在表单中没有任何内容。

代码如下:

包含数据库中现有页面列表的页面:

<?php
    require_once "../scripts/conector.php";

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

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

    $producentnamn = '';
    while ($row = mysqli_fetch_array($query)) { 
        $pid = $row["id"];
        $producent = $row["producent"];
        $producentnamn .= '<a href="edit_page.php?pid=' . $pid . '">' . $producent . '</a>';
    } 
    mysqli_free_result($query);
?>

<form id="form1" name="form1" method="post" action="edit_page.php">
    <input type="submit" name="button2" id="button2" class="botao" value="Redigera" />
    <input name="pid" type="text" id="pid" value="<?php echo $producentnamn; ?>"/>
</form>

edit_page.php

<?php
    $pid = ereg_replace("[^0-9]", "", $_POST['pid']);  

    include_once "../scripts/conector.php";
    $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"];
    } 
    mysqli_free_result($query);
?>

<label>Map</label>
<textarea name="mapa" id="mapa"><?php echo $mapa; ?></textarea>

那么,我在这里做错了什么?非常感谢!

【问题讨论】:

    标签: php database html mysqli content-management-system


    【解决方案1】:

    尝试改变这一行

    <input name="pid" type="text" id="pid" value="<?php echo $producentnamn; ?>"/>
    

    <input name="pid" type="text" id="pid" value="<?php echo $pid; ?>"/>
    

    因为您将&lt;a href="edit_page.php?pid=' . $pid . '"&gt; 传递给表单。我认为在数据库中不存在。您必须将页面的值/id 传递给表单。

    【讨论】:

    • 但是如果我回显 $pid,我将丢失包含每个创建页面名称的列表,而是使用 ID...
    • 在您的 edit_page.php 中,您正在使用 $pid = ereg_replace("[^0-9]", "", $_POST['pid']);所以 edit_page.php 期待一个 pid 而不是锚标记。如果您将值作为锚标记传递,则查询将是 SELECT pagetitle、linklabel、evenemang、presentation、producent、pagebody、mapa FROM pages WHERE id='' 。 $生产者。 '' 限制 1 。你认为 whis 会给你结果吗?
    • 尝试使用 。注意单引号而不是双引号
    猜你喜欢
    • 1970-01-01
    • 2019-11-22
    • 2011-05-29
    • 2017-09-21
    • 1970-01-01
    • 2018-05-28
    • 2012-01-06
    相关资源
    最近更新 更多