0

state id、、city nameを更新するフォームを送信していcity imageます。

画像を更新するだけで動作します。更新state idcity nameて古い画像を同じままにしておきたい場合、データベースの写真フィールドが空白になります。

私のPHPコードは次のようなものです。

 <?php 

if(isset($_POST) && $_POST['submit'] == "Update")
{
        extract($_POST);
        if($_FILES['photo'])
        {
        $cityimg = upload_file($_FILES['photo'],'cityimg/','image','N','true','thumb/', 100, 100);
        $sql = "UPDATE city SET mcid = '$mcid', city_name = '$city_name', photo = '$cityimg' WHERE cid = '$cid'";
        }
        else
        {
        $sql = "UPDATE city SET mcid = '$mcid', city_name = '$city_name' WHERE cid = '$cid'";
        }
        $result = mysql_query($sql);
        if($result)
        {
            $msg = "City Updated Successfully.";
        }
}

?>

ループに問題があると思います。

4

1 に答える 1

1

ファイルが別の方法でアップロードされたかどうかをテストする必要があります。たとえば、これにより、ファイルのアップロード中にエラーが発生しなかったことが確認されます(エラーが発生した場合)。

if($_FILES['photo']['error'] == UPLOAD_ERR_OK){
    // A file was uploaded and there is no error
}

ファイルが選択されていないかどうかだけをテストしたい場合は、を使用できますUPLOAD_ERR_NO_FILE

ファイルアップロードエラーメッセージの詳細

これはあなたのために働くはずです:

<?php 

if(isset($_POST) && $_POST['submit'] == "Update")
{
        extract($_POST);

        // If image was uploaded
        if($_FILES['logo']['error'] == UPLOAD_ERR_OK)
        {
            $cityimg = upload_file($_FILES['photo'],'cityimg/','image','N','true','thumb/', 100, 100);
            $sql = "UPDATE city SET mcid = '$mcid', city_name = '$city_name', photo = '$cityimg' WHERE cid = '$cid'";
        }

        // If no image was uploaded
        else
        {
            $sql = "UPDATE city SET mcid = '$mcid', city_name = '$city_name' WHERE cid = '$cid'";
        }
        $result = mysql_query($sql);
        if($result)
        {
            $msg = "City Updated Successfully.";
        }
}

詳細については、この投稿を確認してください

于 2012-11-22T10:51:23.990 に答える