2013-04-26 65 views
1

的表中删除旧有形象的名字hi2all我已经包含2场那样需要从数据库


TABEL |名称| imags _ | __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _

当用户在我的网站logined我注册这是名称在会议上,当他上传他的新照片

我想删除它的旧ph值oto并将他的名字设置为新照片如何做到这一点?

我的代码,以dB为单位插入每个上传的图片是作为下面我应该添加到我的

$me=$_SESSION['logged-in']; 


$con=mysqli_connect("localhost","root","","register_form"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 



@mysqli_query($con,"INSERT INTO imgs (name, imags) 
VALUES ('$me', '$filename')"); 



mysqli_close($con); 

,这里是我的代码,以显示它

<?php 




      $me=$_SESSION['logged-in']; 
      $con=mysqli_connect("localhost","root","","register_form"); 
    // Check connection 
    if (mysqli_connect_errno()) 
     { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 

    $result = mysqli_query($con,"SELECT imags FROM imgs where name LIKE '$me' "); 


    while($row = mysqli_fetch_array($result)) 
     { 
      $pathimg=$row['imags']; 

      $d = dir("image"); 

    $entry = $d->read(); 
    /*while (false !== ($entry = $d->read())) { 
     echo "<li><img src=\"/ConnectMe/html/image/" . $entry . "\">" . $entry . "</li>"; 
    } 

     */ 
     } 

    mysqli_close($con); 

echo" 

<img width='50' height='60' src=\"/ConnectMe/html/image/$pathimg" . @$entry . "\"> 
"; 
+0

你得到的错误是什么? – Awemo 2013-04-26 16:10:09

回答

0

如果我的理解你很想在插入新照片之前删除包含当前登录名的旧表格行。

将您的INSERT语句更改为该行代码。

检查包含该名称的表中是否有行。如果是这样,更新与新照片的行。如果不是只用INSERT语句插入新行。

此链接可能会有帮助:mysqli_affected_rows

$result = mysqli_query($con,"SELECT * FROM imgs WHERE name = '$me'"); 
if(mysqli_affected_rows() == 1) //it means that user uploaded a photo before 
{ 
    $update = mysqli_query($con, "UPDATE imgs SET imgs = '$filename' WHERE name = '$me'"); 
    if(mysqli_affected_rows() == 1) //it means that UPDATE was successfull 
    {echo 'Your photo was updated successfully';} 
} 
else 
{ 
    @mysqli_query($con,"INSERT INTO imgs (name, imags) VALUES ('$me', '$filename')"); 
} 

如果你想删除文件系统文件,你应该使用unlink的功能,给原来的路径作为参数。

我希望这对你有用。

+0

它的工作,但当我看到数据库我看到重复的文件,我认为数据存储3次任何灵魂?这里是 http://i.stack.imgur.com/ytVPb.png – TheSniper104 2013-04-26 20:35:37

+0

如果第一个'mysqli_affected_rows()'返回0,则表示该表没有给定名称的行,并且将插入新行。 你可以使用phpmyadmin来手动检查你选择的语句返回。 还有一个简单的选项,不允许插入更多具有相同名称的行。 这意味着您必须在该列上添加唯一索引。 – Shooler 2013-04-28 16:00:04

+0

这意味着您必须在该列上添加唯一索引。 你可以通过查看表结构并点击'action'列中的“U”图标(取决于phpmyadmin版本)来实现,或者你可以使用SQL查询来实现该操作。'ALTER TABLE imgs ADD UNIQUE INDEX name_unique(name);' – Shooler 2013-04-28 16:08:05