【问题标题】:Update php mysql image field lost更新 php mysql 图像字段丢失
【发布时间】:2020-07-10 15:30:36
【问题描述】:

我正在使用图像字段更新我的帖子。一切都很好,但是我丢失了图像的路径,儿子,如果我将字段留空,则图像路径为空。

我一直在尝试不同的方法来包含字段图像的旧路径。这些是具有旧路径和新路径的行。

<input type="file" name="image" value="<?php echo $row['image']; ?>">
<input type="hidden" name="old_image" value="<?php echo $row['image']; ?>" >

我也尝试了&lt;input type="file" name="image" value="&lt;?php echo $image; ?&gt;"&gt;,但它不起作用。 有什么建议吗?

提前致谢! :)

这是我的代码:

<?php
    require 'database.php';
    $db = mysqli_connect("", "", "", "");

    $id=$_GET["id"];

    $title='';
    $image='';
    $image_text='';
    $category='';

    $result = mysqli_query($db, "SELECT * FROM `images` WHERE `id` = $id  ");
    while ($row = mysqli_fetch_array($result))
    {
       $title=$row['title'];
       $image=$row['image'];
       $papayos = $row['papayos'];
       $cantidad = $row['cantidad'];
       $image_text=nl2br($row['image_text']);
       $category=$row['category'];
    }
?>

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
      <meta charset="utf-8">
      <title>Modificar. Lapapaya.org Educación y colaboración </title>
      <meta name="keywords" content="colaboracion, economía del bien común, emprendimiento"/>
      <meta name="description" content="Plataforma para desarrollo de proyectos productivos con bonos de intercambio"/>
      <link rel="stylesheet" href="css/style.css">
      <link rel="shortcut icon" type="image/png" href="images/favicon.png">
      <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.8.0/css/bulma.min.css">
      <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    </head>
    <body>
      <section class="section has-background-white">
        <div class="container">
          <div class="columns is-centered">
                <img class="logo-intro" src="images/logo.png" alt="Logo">
                <br>
          </div>
        </div>
      </section>
      <form method="POST" action='' enctype="multipart/form-data">
      <div class="container">
            <h1>Título del artículo</h1>
            <br>
        <div class="field">
        <div class="control">
          <input class="input is-warning is-fullwidth" type="text" name="title" value="<?php echo $title; ?>" placeholder="Título">
        </div>
            <br>
            <br>
            <div>
          <div class="notification"> <h1>Imagen</h1>
          <input type="hidden" name="size" value="1000000">
          <div class="field">
            <div class="control">
              <input type="file" name="image" value="<?php echo $row['image']; ?>">
              <input type="hidden" name="old_image" value="<?php echo $row['image']; ?>" >
            </div>
          </div>

          <div>
            <h1>Descripción</h1>
            <textarea class="textarea" name="image_text" rows="8" cols="80"><?php echo $image_text; ?></textarea>
              <br>
              <h1>Categoría</h1>
              <div class=" select is-warning is-fullwidth">
                <select type="text" class="" name="category" value="<?php echo $category; ?>">
                  <option value="1 ">Productos agrícolas</option>
                  <option value="2 ">Servicio</option>
                  <option value="3 ">Artesanía</option>
                  <option value="4 ">Arte</option>
                  <option value="5">Diseño Industrial</option>
                  <option value="6 ">Ciudad</option>
                  <option value="7 ">Economía</option>
                  <option value="8 ">Emprendimiento</option>
                  <option value="9 ">Programación</option>
                  <option value="10 ">Reflexión</option>
                  <option value="11">Río</option>
                  <option value="12 ">Seguridad alimentaria</option>
                  <option value="13 ">Vivienda</option>
                </select>
              </div>
              <h1>Precio</h1>
              <br>
          <div class="field">
          <div class="control">
            <input class="input is-warning" type="number" name="papayos" value="<?php echo $papayos; ?>" placeholder="Papayos">
          </div>
          <br>
          <h1>Cantidad</h1>
          <br>
      <div class="field">
      <div class="control">
        <input class="input is-warning" type="number" name="cantidad" value="<?php echo $cantidad; ?>" placeholder="Cantidad">
      </div>
          <br>
        <br>
      <div>

            <button class="button is-outlined is-medium is-fullwidth" type="update" name="update">Modificar</button>
          </div>
          </div>
        </form>

    </body>
  </html>

  <?php
  $server = '';
  $username = '';
  $password = '';
  $database = '';



  if (isset($_POST['update'])) {
    $title=$_POST['title'];
    $image_text=nl2br($_POST['image_text']);
    $category=$_POST['category'];
    $papayos =$_POST['papayos'];
    $cantidad =$_POST['cantidad'];
    $total = $papayos * $cantidad;
    $old_image = $_POST['old_image'];

    if(isset($_FILES['image']['name']) && ($_FILES['image']['name']!="")) {
      $size=$_FILES['image']['size'];
      $temp=$_FILES['image']['tmp_name'];
      $type=$_FILES['image']['type'];
      $image_name=$_FILES['image']['name'];
      unlink("images/$old_image");
      move_uploaded_file($temp, "images/$image_name");
    }else {
      $image_name=$old_image;
    }
    $update=mysqli_query($db, "UPDATE images SET title = '$title', image = '$image_name', image_text = '$image_text', category = '$category', papayos = '$papayos', cantidad = '$cantidad', total = '$total'  WHERE id = $id");
    if ($update) {
    echo  "<script>alert('Datos actualizados exitosamente')</script>";
    echo "<script>window.open('index.php', '_self')</script>";
    }
    else {
    echo  "<script>alert('Inserción fallida')</script>";
    }

 } ?>

【问题讨论】:

  • 您的意思是您的old_image 字段吗?
  • ¿是的,你能看到错误吗?
  • 我在您的查询中没有看到它$update=mysqli_query($db, "UPDATE images SET title = '$title', image = '$image_name', image_text = '$image_text', category = '$category', papayos = '$papayos', cantidad = '$cantidad', total = '$total' WHERE id = $id");
  • 但问题是,当我向页面收费时,旧链接没有显示在 html 中,所以当我必须看到旧链接时,我没有看到任何文件。

标签: php image


【解决方案1】:

我修复了在输入文件上方添加这个:

<img src="images/<?php echo $image; ?>">

:)

【讨论】:

    猜你喜欢
    • 2013-11-30
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 2012-11-08
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多