代码运行后只删除文件夹里的一张图片,怎么做到把对应信息下的图片全部删除呢?
<?
include("config.inc.php");
include("function.php");
include("in.php");
if($_COOKIE['fcw_ly']=='企业') header("location:out.php");
$conn=mysql_connect($YIHOST,$YIUSER,$YIPASS);
mysql_query("set names gbk");
mysql_select_db($YINAME);
if (empty($_GET['id']))
{
mysql_close();
echo "<script>alert('非法提交!请重新提交!');history.back();</script>";
exit;
}
$YID=htmlencode2($_GET['id']);
$sql="select YDT,YXT from ytp where YZM=$yimaoid and YLX='房源' and YYH=$YHID and YBH=$YID";
$r=mysql_query($sql);
$row=mysql_fetch_assoc($r);
foreach($row as $v) unlink($v);
$exec="delete from yfy where YZM=$yimaoid and YYH=$YHID and YID=$YID";
mysql_query($exec);$exec="delete from ytp where YZM=$yimaoid and YLX='房源' and YYH=$YHID and YBH=$YID";
mysql_query($exec);
mysql_close();
echo "<script>alert('删除成功!');history.back();</script>";
exit;
?>

解决方案 »

  1.   

    select YDT,YXT from ytp where YZM=$yimaoid and YLX='房源' and YYH=$YHID and YBH=$YID 
    你这条语句运行后又多行对不? 如果是就要用while循环了。
      

  2.   


    #id表示ytp中的唯一键$sql="select id,YDT,YXT from ytp where YZM=$yimaoid and YLX='房源' and YYH=$YHID and YBH=$YID";
    $r=mysql_query($sql);
    $arr=array();
    while($rows = mysql_fetch_assoc($r)){
      array_push($arr,$rows);
    }$ids="";
    foreach($arr as $a){
        $ids .= $a['id'];
    }$exec="delete from ytp where id in (".$ids.")";
      

  3.   


    foreach($arr as $a){
        $ids .= $a['id'];
    }#改为
    foreach($arr as $a){
        $ids[] = $a['id'] ;
    }
    if(count($ids)>1)
      $ids = implode(",",$ids);
    else
      $ids = $ids[0];
      

  4.   


    发布信息的时候如果插入大于1张图片,查询后就是多行,while循环该如何写呢?
      

  5.   

    while($rows = mysql_fetch_assoc($r)){
        unlink($rows[YDT]);
        unlink($rows[YXT]);
    }
      

  6.   


    非常感谢,前台用户删除数据时可用,为什么后台管理员删除图片时用同样的代码就不能用了呢?前台删除代码<?
    include("config.inc.php");
    include("function.php");
    include("in.php");
    if($_COOKIE['fcw_ly']=='企业') header("location:out.php");
    $conn=mysql_connect($YIHOST,$YIUSER,$YIPASS);
    mysql_query("set names gbk");
    mysql_select_db($YINAME);
    if (empty($_GET['id']))
    {
    mysql_close();
    echo "<script>alert('非法提交!请重新提交!');history.back();</script>";
    exit;
    }
    $YID=htmlencode2($_GET['id']);
    $sql="select YDT,YXT from ytp where YZM=$yimaoid and YLX='房源' and YYH=$YHID and YBH=$YID";
    $r=mysql_query($sql);
    $row=mysql_fetch_assoc($r);
    foreach($row as $v) unlink($v);
    while($rows = mysql_fetch_assoc($r)){
      unlink($rows[YDT]);
      unlink($rows[YXT]);
    }
    $exec="delete from yfy where YZM=$yimaoid and YYH=$YHID and YID=$YID";
    mysql_query($exec);$exec="delete from ytp where YZM=$yimaoid and YLX='房源' and YYH=$YHID and YBH=$YID";
    mysql_query($exec);
    mysql_close();
    echo "<script>alert('删除成功!');history.back();</script>";
    exit;
    ?>后台管理员删除代码<?
    include("in.php");
    if (empty($_GET['id']))
    {
    echo "<script>alert('非法提交!请重新提交!');history.back();</script>";
    exit;
    }
    $YID=htmlencode2($_GET['id']);-------------此处为添加的和前台一样的代码,前台可以执行,管理员后台删除就不执行,只执行下面的代码---------------------------
    $sql="select YDT,YXT from ytp where YZM=$yimaoid and YLX='房源' and YYH=$YHID and YBH=$YID";
    $r=mysql_query($sql);
    $row=mysql_fetch_assoc($r);
    foreach($row as $v) unlink($v);
    while($rows = mysql_fetch_assoc($r)){
      unlink($rows[YDT]);
      unlink($rows[YXT]);
    }-----------------只执行下面的代码,为什么啊???少了什么???-----------------
    $exec="delete from yfy where YZM=$yimaoid and YID=$YID";
    mysql_query($exec);
    $exec="delete from ytp where YZM=$yimaoid and YLX='房源' and YBH=$YID";
    mysql_query($exec);
    mysql_close();
    echo "<script>alert('删除成功!');history.back();</script>";
    exit;
    ?>
      

  7.   

    后台代码$sql="select YDT,YXT from ytp where YZM=$yimaoid and YLX='房源' and YYH=$YHID and YBH=$YID";
    我复制错了,应该是
    $sql="select YDT,YXT from ytp where YZM=$yimaoid and YLX='房源' and YBH=$YID";
      

  8.   

    如果有多条。下面两句就不必了。
    $row=mysql_fetch_assoc($r);
    foreach($row as $v) unlink($v);
    下面这样看有不有值:
    while($rows = mysql_fetch_assoc($r)){
     print_r($rows);   
      unlink($rows[YDT]);
      unlink($rows[YXT]);
    }
      

  9.   

    有值,删不掉Array ([YDT] =>2012/b/1339120538520.jpg [YXT] => 2012/s1339120538520.jpg ) Array ([YDT] =>2012/b/1339120537157.jpg [YXT] => 2012/s1339120537157.jpg )
      

  10.   

    是不是和目录有关系呢?前台删除代码是存在根目录下的,后台删除代码是存在admin文件夹里的
      

  11.   

    unlink('../'.$rows[YDT]);
     unlink('../'.$rows[YXT]);这样试试。
      

  12.   


    我想再请教个问题,图片存储时应该自动建立个文件夹,但是我这代码不能自动建立新文件夹,麻烦你帮忙看看是怎么回事<?
    include("config.inc.php");
    include("function.php");
    include("in.php");
    $conn=mysql_connect($YIHOST,$YIUSER,$YIPASS);
    mysql_query("set names gbk");
    mysql_select_db($YINAME);
    if (!isset($_POST['YLX']) or !isset($_POST['YBH']) or empty($_POST['YFL']))
    {
    mysql_close();
    echo "<script>alert('非法提交!请正确填写后重新提交!');history.back();</script>";
    exit;
    }
    $YTP=yiup($_FILES["YTP"],0,"no.jpg",array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/x-png'),10485760,"tmp/");
    if ($YTP=="no.jpg")
    {
    mysql_close();
    echo "<script>alert('上传失败!请注意图片格式和文件大小!');history.back();</script>";
    exit;
    }
    if ($YTP!="no.jpg")
    {
    $k=rand(100,999);
    $YTP0=time().$k.".jpg";
    $YTP1=date("Y")."/s/".$YTP0;
    $YTP2=date("Y")."/b/".$YTP0;
    yisw("tmp/".$YTP,$YTP2,800,600,1);
    yisw($YTP2,$YTP1,128,96,0);
    yisy($YTP2,"pub/water.gif");
    unlink("tmp/".$YTP);
    $exec="insert into ytp (YZM,YYH,YLX,YBH,YFL,YXT,YDT) values ('".$yimaoid."','".$YHID."','".htmlencode2($_POST['YLX'])."','".htmlencode2($_POST['YBH'])."','".htmlencode2($_POST['YFL'])."','".$YTP1."','".$YTP2."')";
    $result=mysql_query($exec);
    }
    mysql_close();
    echo "<script>alert('上传成功!');history.back();</script>";
    exit;
    ?>
      

  13.   


    在麻烦你请教个问题,图片在存储的时候根据年份应该自动建立个新文件夹,为什么我这的代码不能自动建立呢?<?
    include("config.inc.php");
    include("function.php");
    include("in.php");
    $conn=mysql_connect($YIHOST,$YIUSER,$YIPASS);
    mysql_query("set names gbk");
    mysql_select_db($YINAME);
    if (!isset($_POST['YLX']) or !isset($_POST['YBH']) or empty($_POST['YFL']))
    {
    mysql_close();
    echo "<script>alert('非法提交!请正确填写后重新提交!');history.back();</script>";
    exit;
    }
    $YTP=yiup($_FILES["YTP"],0,"no.jpg",array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/x-png'),10485760,"tmp/");
    if ($YTP=="no.jpg")
    {
    mysql_close();
    echo "<script>alert('上传失败!请注意图片格式和文件大小!');history.back();</script>";
    exit;
    }
    if ($YTP!="no.jpg")
    {
    $k=rand(100,999);
    $YTP0=time().$k.".jpg";
    $YTP1=date("Y")."/s/".$YTP0;
    $YTP2=date("Y")."/b/".$YTP0;
    yisw("tmp/".$YTP,$YTP2,800,600,1);
    yisw($YTP2,$YTP1,128,96,0);
    yisy($YTP2,"pub/water.gif");
    unlink("tmp/".$YTP);
    $exec="insert into ytp (YZM,YYH,YLX,YBH,YFL,YXT,YDT) values ('".$yimaoid."','".$YHID."','".htmlencode2($_POST['YLX'])."','".htmlencode2($_POST['YBH'])."','".htmlencode2($_POST['YFL'])."','".$YTP1."','".$YTP2."')";
    $result=mysql_query($exec);
    }
    mysql_close();
    echo "<script>alert('上传成功!');history.back();</script>";
    exit;
    ?>