2016-11-13 22 views
0

ユーザは自分のウェブページ上のコンテンツを追加、編集、削除することができます。人々はアップロードしたテキストと画像を編集できます。ただし、テキストのみを編集すると画像は表示されません。テキストではなく画像を編集すると、画像が表示されるはずの白いボックスが表示されます。一方、私は写真を編集するだけで何も表示されない場合、画像が表示されます。画像とテキストの両方を編集しようとすると、テキストだけが更新されます。ユーザーは、プロファイルページのようにテキストと画像を編集できるようにします。テキストと画像を編集したら、古い画像をフォルダから削除します。画像とテキストを一緒に編集するにはどうすればよいですか?私は何の誤りもありません。助けてください、私はPHPとMySQLの初心者です。あなたの時間をありがとう。 Update systemこれはコードです:あなたが唯一のテキストを編集するときに何が起こっているPhpとMysqlで同時に画像とテキストを更新する

<?php 
include "connection.php"; 
$vid=""; 
$vname=""; 
$vprice=""; 


if(isset($_POST["button_add"])){ 
$product_name = $_POST["product_name"]; 
$product_price = $_POST["product_price"]; 
$product_picture = $_FILES["product_picture"]["name"]; 

    $qry = mysqli_query($con, "INSERT INTO table_product values('','$product_name','$product_price','$product_picture')") or die("Can not query database"); 
    if($qry){ 
     $target_dir = "picture/"; 
     $target_file = $target_dir . basename($_FILES["product_picture"]["name"]); 
     $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
if(move_uploaded_file($_FILES["product_picture"]["tmp_name"], 
$target_file)){ 
    echo"file uploaded"; 
} 
else{ 
    echo "Upload fail"; 
} 

    } 
} 
else if(isset($_POST["button_edit"])){ 
    $product_name = $_POST["product_name"]; 
    $product_price = $_POST["product_price"]; 
    $product_id = $_POST["product_id"]; 

    if(isset($_FILES["product_picture"]["name"])){ 
$product_picture = $_FILES["product_picture"]["name"]; 
    $qry = mysqli_query($con,"Update table_product Set product_name='$product_name', product_price='$product_price', product_picture='$product_picture' Where product_id='$product_id'"); 
     $target_dir = "picture/"; 
     $target_file = $target_dir . basename($_FILES["product_picture"]["name"]); 
     $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
    move_uploaded_file($_FILES["product_picture"]["tmp_name"],$target_file); 
    } 
    else{ 
$qry = "Update table_product Set product_name='$product_name', product_price='$product_price' Where product_id='$product_id'"; 
} 
$qry_update = mysqli_query($con,$qry); 
    } 

    if(isset($_GET["delete"])){ 
$qry = mysqli_query($con, "Delete From table_product Where product_id='".$_GET["delete"]."'"); 
    if($qry){ 
     @unlink("picture/".$_GET["picture"]); 
    } 
    } 
else if(isset($_GET["edit"])){ 
    $qry = mysqli_query($con,"Select * From table_product Where product_id='".$_GET["edit"]."'"); 
    while($row=mysqli_fetch_array($qry,MYSQLI_ASSOC)){ 
     $vid=$row["product_id"]; 
     $vname=$row["product_name"]; 
     $vprice=$row["product_price"]; 
    } 
} 
?> 

<!DOCTYPE html> 
<html> 
<head> 
<title>Product</title> 
</head> 
<body> 
<form action='<?php echo $_SERVER["PHP_SELF"]; ?>' method="post" enctype="multipart/form-data" > 
    <table> 
     <tr> 
      <td>Product ID</td> 
      <td><input type="text" name="product_id" value="<?php echo $vid;?>"></td></tr> 
     <tr><td>Product Name</td> 
     <td><input type="text" name="product_name" value="<?php echo $vname;?>"></td></tr> 
     <tr><td>Product Price</td> 
     <td><input type="text" name="product_price" value="<?php echo $vprice;?>"></td></tr> 
     <tr><td>Product Picture</td> 
     <td><input type="file" name="product_picture"></td></tr> 
     <tr><td colspan="2"> 
     <input type="submit" name="button_add" value="Add"> 
     <input type="submit" name="button_edit" value="Edit"></td></tr> </table> 
</form> 
<table border=1> 
    <tr><th>product ID</th><th>product Name</th> 
    <th>product price</th><th>product image</th> <th>Action</th></tr> 
    <?php 
    $qry =mysqli_query($con, "Select * From table_product"); 
    while($row=mysqli_fetch_array($qry,MYSQLI_ASSOC)){ 
     echo '<tr><td>'.$row["product_id"].'</td>'; 
     echo '<td>'.$row["product_name"].'</td>'; 
     echo '<td>'.$row["product_price"].'</td>'; 
     echo '<td><img src="picture/'.$row["product_picture"].'" style=width:100px;height:xpx;"/></td>'; 

     echo '<td><a href="?edit='.$row["product_id"].'">Edit</a> |<a href="?delete='.$row["product_id"].'&picture='.$row["product_picture"].'">Delete</a></td></tr>'; 



    } 



    ?> 
</table> 
<br><br><br> 
</body> 
</html> 
+1

内部の条件付きクエリを構築することです。 mysqliの代わりにphp pdoを使用してください。あなたは将来的にセキュリティについて心配する必要があります。 – Ergec

答えて

0

がある、とも呼ばれるクエリは、イメージパスを更新していますが、画像を追加し `tのため、それはNULLになります。 一つの方法は、あなたが新しいしていることから、オフトピックの提案を編集クリック

if(isset($_FILES["product_picture"]["name"])) 
{ 
$product_picture = $_FILES["product_picture"]["name"]; 
$sql = "Update table_product Set product_name='$product_name', product_price='$product_price', product_picture='$product_picture' Where product_id='$product_id'"; 
target_dir = "picture/"; 
    $target_file = $target_dir . basename($_FILES["product_picture"]["name"]); 
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
move_uploaded_file($_FILES["product_picture"]["tmp_name"],$target_file); 
} 
else{ 
$sql = "Update table_product Set product_name='$product_name', product_price='$product_price' Where product_id='$product_id'" 
} 

qry = mysqli_query($con,$sql); 
関連する問題