如何删除以及为什么自动输入数据库?

时间:2013-11-22 12:04:21

标签: php sql-update

有人可以帮助我吗? 我正在制作带有图像的编辑帖子,这段代码可以工作,但是如果我选择另一张图片,旧版本仍在我的文件夹中。

第二个问题是如果我不选择任何图像,数据库中的图像名称会发生​​变化。就像我选择图像,但只输入$ randomnewedit。

if (isset ($_POST['submitedit'])){
$uploads_dir = '../images';
$randomedit   = time('YmdHis');
$randomnewedit = $randomedit."_";
$tipe_fileedit      = $_FILES['filefotoedit']['type'];
$tmp_fileedit       = $_FILES['filefotoedit']['tmp_name'];
$nama_fileedit      = $_FILES['filefotoedit']['name'];
$new_nama_fileedit  = $randomnewedit.$nama_fileedit;
move_uploaded_file($tmp_fileedit,"$uploads_dir/$new_nama_fileedit");

    $namabankedit=trim($_POST['namabankedit']);
    $cabangedit=trim($_POST['cabangedit']);
    $norekeningedit=trim($_POST['norekeningedit']);
    $namanasabahedit=trim($_POST['namanasabahedit']);

    $kueri = "UPDATE trans SET namabank='" . $namabankedit. "', cabang='" . $cabangedit. "', rekeningbank='" . $norekeningedit. "', namanasabah='" . $namanasabahedit. "', logobank='" . $new_nama_fileedit. "' WHERE idtrans='" . $idedit . "'";
    $hasil = mysql_query($kueri);
    echo "<meta http-equiv='refresh' content='0; url=indexcuko.php?module=rekening'>";
}}}

这是我的编辑表格:

if (isset ($_GET['act']) ? $_GET['act']:0){
if ($_GET['act'] == 'edit') {
$idedit = $_GET['id'];
$resultedit = mysql_query("SELECT * FROM trans WHERE idtrans = $idedit;");
$rowedit = mysql_fetch_assoc($resultedit);
$titlenamabank = $rowedit['namabank'];
$titlecabang = $rowedit['cabang'];
$titlerekeningbank = $rowedit['rekeningbank'];
$titlenamanasabah = $rowedit['namanasabah'];
$titlelogobank = $rowedit['logobank'];
echo"
<h1>Edit Rekening</h1>
<form action='' method=\"post\" onreset=\"location.href=rekening.php\" name=\"form2\"  enctype='multipart/form-data'>
<table class=\"tableb\">
    <tr>
    <td width=120 align=center>Nama Bank</td>
    <td align=center>:</td>
    <td width=120 align=center><input class=\"inputz\" name=\"namabankedit\" id=\"namabank\" type=\"text\" size=\"50\" value=\"$titlenamabank\" /></td>
    </tr>
    <tr>
    <td width=120 align=center>Cabang</td>
    <td align=center>:</td>
    <td width=120 align=center><input class=\"inputz\" name=\"cabangedit\" id=\"cabang\" type=\"text\" size=\"50\" value=\"$titlecabang\" /></td>
    </tr>
    <tr>
    <td width=120 align=center>No. Rekening</td>
    <td align=center>:</td>
    <td width=120 align=center><input class=\"inputz\" name=\"norekeningedit\" id=\"norekening\" type=\"text\" size=\"50\" value=\"$titlerekeningbank\" /></td>
    </tr>
    <tr>
    <td width=120 align=center>Atas Nama</td>
    <td align=center>:</td>
    <td width=120 align=center><input class=\"inputz\" name=\"namanasabahedit\" id=\"namanasabah\" type=\"text\" size=\"50\" value=\"$titlenamanasabah\" /></td>
    </tr>
    <tr>
    <td width=120 align=center>Logo Bank</td>
    <td align=center>:</td>
    <td width=120 align=center><input name=\"filefotoedit\" id=\"filefoto\" type=\"file\" value=\"$titlelogobank\" /></td>
    </tr>
    <tr>
    <td colspan=\"3\"><button class=\"buttonz\" name=\"submitedit\" type=\"submit\" onClick=\"return verify()\" value=\"save\">Simpan</button></td>
    </tr>
</table>
</form>";}}
抱歉,如果说错了,我真的不擅长英语!

2 个答案:

答案 0 :(得分:0)

在进入上传之前或使用php内置函数之后,您需要取消链接旧文件。

unlink("filepath/filename");

对于第二个问题:您需要根据该文件检查文件是否存在,

       $nama_fileedit      = $_FILES['filefotoedit']['name'];


    $new_nama_fileedit  = $randomnewedit.$nama_fileedit;


        $namabankedit=trim($_POST['namabankedit']);
        $cabangedit=trim($_POST['cabangedit']);
        $norekeningedit=trim($_POST['norekeningedit']);
        $namanasabahedit=trim($_POST['namanasabahedit']);

        if(isset($nama_fileedit){

             move_uploaded_file($tmp_fileedit,"$uploads_dir/$new_nama_fileedit");

             $kueri = "UPDATE trans SET namabank='" . $namabankedit. "', cabang='" . $cabangedit. "', rekeningbank='" . $norekeningedit. "', namanasabah='" . $namanasabahedit. "', logobank='" . $new_nama_fileedit. "' WHERE idtrans='" . $idedit . "'";

         }else{

              $kueri = "UPDATE trans SET namabank='" . $namabankedit. "', cabang='" . $cabangedit. "', rekeningbank='" . $norekeningedit. "', namanasabah='" . $namanasabahedit. "'  WHERE idtrans='" . $idedit . "'";
         }
        $hasil = mysql_query($kueri);
        echo "<meta http-equiv='refresh' content='0; url=indexcuko.php?module=rekening'>";

答案 1 :(得分:0)

回答第一个问题:

在你的代码中,变量$ randomedit = time('YmdHis');造成了这个问题。因为它使用的是当前时间,所以在任何时候你都找不到具有相同唯一名称的文件,因此不会有覆盖文件的问题。此外,您尚未使用unlink()函数显式删除该文件。

回答第二个问题:

数据库中的图像名称发生更改,因为您没有检查文件是否正在上载。检查$ _FILES数组是否包含任何值。如果它包含值,则只将新文件名发送到更新查询,否则不要更新数据库中的文件名。

希望这会对你有所帮助。