2016-12-13 39 views
0

我已经构建了一个更新文本和图像的后端系统。值将从admin.php页面上的URL传递到索引页面。正在使用表格来显示文字和图像。更新的文本和图像应该显示在表格中。出于某种奇怪的原因,当我更新内容然后点击编辑内容按钮时,文本和图像总是消失。内容在数据库中更新,没有问题。我没有犯任何错误。如何获取更新的文本和图像以在表格中显示而不会消失内容?我感谢你的帮助,我仍然在学习PHP。 Edit contentContent removed out of table为什么内容在更新时从表格中消失

这是代码:

admin.php的

<?php 
    require_once('authorize.php'); 
?> 

<!DOCTYPE html> 
<html> 
<head> 
<style> 
a:link { 
    text-decoration: none; 
} 
</style> 

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Remove Thumbnail Administration</title> 
    <link rel="stylesheet" type="text/css" href="style.css" /> 
</head> 
<body> 
    <h2>Administration</h2> 
    <p>Below is a list of all thumbnails. Use this page to remove thumbnails as needed.</p> 
    <hr /> 

<?php 
    require_once('appvars.php'); 
    require_once('connectvars.php'); 

    // Connect to the database 
    $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

    // Retrieve the data from MySQL 
    $query = "SELECT * FROM table1 ORDER BY name ASC, caption ASC"; 
    //$query = "SELECT * FROM table1 ORDER BY name DESC, caption ASC";  
    $data = mysqli_query($conn, $query); 

/// Loop through the array of data, formatting it as HTML 
    echo '<table>'; 
    echo '<tr><th>Name</th><th>Caption</th><th>Action</th></tr>'; 
    while ($row = mysqli_fetch_array($data)) { 
    // Display the thumbnails data 
    echo '<tr class="scorerow"><td><strong>' . $row['name'] . '</strong></td>'; 
    echo '<td>' . $row['caption'] . '</td>'; 

    //edit link 

     echo '<td><a href="index.php?id=' . $row['id'] . '&amp;image=' . $row['image1'] . '&amp;name=' . $row['name'] . 
    '&amp;caption=' . $row['caption'] . 
     '&amp;video=' . $row['video'] . '">Edit </a>'; 




    echo '</td></tr>'; 
    } 
    echo '</table>'; 
    echo "<br><br>"; 

    mysqli_close($conn); 
?> 

</body> 
</html> 

的index.php

<!DOCTYPE html> 
<html> 
<head> 
    <title>Edit Conent</title> 
    <link rel="stylesheet" type="text/css" href="style.css" /> 
    <style> 
     .bigger_textbox { 
    width: 400px; 
    height: 40px; 
} 

    </style> 

</head> 
<body> 
    <h3>Edit Conent</h3> 

<?php 
    require_once('appvars.php'); 
    require_once('connectvars.php'); 

    $vid=""; 
    $vname=""; 
    $vcaption=""; 
    $vvideo=""; 
    $id =""; 

    // Connect to the database 
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

    if(isset($_POST["button_edit"])){ 
    $id = $_POST["id"]; 
    $name = $_POST['name']; 
    $caption = $_POST['caption']; 
    $video = $_POST['video']; 

    $old_picture = $_POST['old_picture']; 
    if(!empty($_FILES["new_picture"]["name"])) { 
    $new_picture = $_FILES["new_picture"]["name"]; 
    $qry = mysqli_query($dbc,"Update table1 Set image1='$new_picture', name='$name', caption='$caption', video='$video' Where id='$id'"); 

     $target_dir = "images/"; 
     $target_file = $target_dir . basename($_FILES["new_picture"]["name"]); 
     $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
    if (move_uploaded_file($_FILES["new_picture"]["tmp_name"],$target_file)){ 
    if (isset($old_picture) && ($old_picture != $new_picture)) { 
       @unlink("images/" . $old_picture); 
       echo "<h1>image was uploaded</h1>"; 

    } 
    } 
    } 
    else{ 
$qry = "Update table1 Set name='$name', caption='$caption', video='$video' Where id='$id'"; 
} 

$qryUpdate = mysqli_query($dbc,$qry); 
    } 

else if(isset($_GET["edit"])){ 
    $qry = mysqli_query($dbc,"Select * From table1 Where id='".$_GET["edit"]."'"); 
    while($row=mysqli_fetch_array($qry,MYSQLI_ASSOC)){ 
     $vid=$row["id"]; 
     $old_picture=$row["image1"]; 
     $vname=$row["name"]; 
     $vcaption=$row["caption"]; 
     $vvideo=$row["video"]; 


    } 
} 


?> 



<!DOCTYPE html> 
<html> 
<head> 
<title>Edit</title> 
</head> 
<body> 
<form action='<?php echo $_SERVER["PHP_SELF"]; ?>' method="post" enctype="multipart/form-data" > 
    <table> 
    <tr> 
      <td>Product ID</td> 
      <td><input type="text" name="id" value="<?php echo $vid;?>"></td></tr> 
     <tr> 
      <td>Name</td> 
      <td><input type="text" class="bigger_textbox" name="name" value="<?php echo $vname;?>"></td></tr> 
     <tr><td>Caption</td> 
     <td><input type="text" class="bigger_textbox" name="caption" value="<?php echo $vcaption;?>"></td></tr> 
     <tr><td>Video</td> 
     <td><input type="text" class="bigger_textbox" name="video" value="<?php echo $vvideo;?>"></td></tr> 
     <input type="hidden" name="old_picture" value="<?php if (!empty($old_picture)) echo $old_picture; ?>" /> 
     <tr><td>Picture</td> 
     <td><input type="file" name="new_picture" ></td></tr> 
     <?php if (!empty($old_picture)) { 
     echo '<img class="profile" src="images/' . $old_picture . '" alt="image" style=width:150px;height:xpx;">'; 
     } 
     ?> 
     <tr><td colspan="2"> 
     <input type="submit" name="button_edit" value="Edit Content"></td></tr> </table> 
</form> 
<table border=1> 
    <tr><th>Name</th><th>Caption</th> 
    <th>Video</th><th>image</th> <th>Action</th></tr> 
    <?php 
    if (isset($_GET["id"])) { 
    $qry =mysqli_query($dbc, "Select * From table1 Where id='".$_GET["id"]."'"); 
    while($row=mysqli_fetch_array($qry,MYSQLI_ASSOC)) { 
     echo '<tr><td>'.$row["name"].'</td>'; 
     echo '<td>'.$row["caption"].'</td>'; 
     echo '<td>'.$row["video"].'</td>'; 
     echo '<td><img src="images/'.$row["image1"].'" style=width:100px;height:xpx;"/></td>'; 

     echo '<td><a href="?id='.$row["id"].'&edit='.$row["id"]. '&video='.$row["video"].'&image='.$row["image1"].'">Edit</a> </td></tr>'; 
     } 


    } 



    ?> 
</table> 

<p><a href="admin.php">&lt;&lt; Back to admin page</a></p> 

<br><br><br> 
</body> 
</html> 
+2

'$ _SERVER [“PHP_SELF”];'不包含url变量,所以你的'_ _GET [“id”]'在表单发布时将是空白的。请参阅http://stackoverflow.com/q/14093316/689579。简单的解决方法是只执行'

Sean

回答

0

在你清除的值在index.php顶部变量。

试试这个:

<?php 
    isset($vid) ? $vid : ""; 
    isset($vname) ? $vname : ""; 
    isset($vcaption) ? $vcaption : ""; 
    isset($vvideo) ? $vvideo : ""; 
    isset($id) ? $id : ""; 

这是一个快速响应;但是,您需要重新组织代码。 将HTML部分分离为部分,其中静态部分(页眉和页脚可以包含在一行中)。而不是每行都使用echo,请使用$ output。=“结果数据”;连接数据,然后回显$输出。

相关问题