2017-03-29 18 views
0

選択した画像のID情報を変更したい。最後のIDよりもID番号を増やしたいです。PHP、MYSQL行選択更新

(HTML);

<form action="netting/operations.php" method="post"> 
<input type="hidden" value="<?php echo $unilogo['uni_logo_id'] ?>" name="uni_logo_id"> 
<button value="use" name="use_again">Use Again</button> 
</form> 

<?php 
if(isset($_POST['use_again'])){ 
    $unilogoid= $_POST['uni_logo_id']; 
    $lastunilogoid = mysqli_query($conn,"SELECT uni_logo_id FROM uni_logo ORDER BY uni_logo_id DESC LIMIT 1"); 
    $unilogosql = "UPDATE uni_logo SET uni_logo_id='".$lastunilogoid."' WHERE uni_logo_id='".$unilogoid."'"; 
    $unilogosira=mysqli_query($conn,$unilogosql,MYSQLI_USE_RESULT); 
?> 
+1

最初のクエリの結果を取得するには、mysqli_fetch_assoc()を使用するのを忘れています。 – Barmar

答えて

1

$lastunilogoidそれはmysqli_resultオブジェクトの、IDの有効ではありません。

$result = mysqli_query($conn,"SELECT uni_logo_id FROM uni_logo ORDER BY uni_logo_id DESC LIMIT 1"); 
$row = mysqli_fetch_assoc($result); 
$lastunilogoid = $row['uni_logi_id']; 

しかし、あなたは1つのクエリで全体のことを行うことができ、そしてあなたがそれを行うために準備されたステートメントを使用する必要があります:あなたはmysqli_fetch_assocを呼び出す必要があります。

$stmt = mysqli_prepare($conn, " 
    UPDATE uni_logo AS u1 
    JOIN (SELECT MAX(uni_logo_id) AS max_id 
      FROM uni_logo) AS u2 
    SET u1.uni_logo_id = u2.max_id + 1 
    WHERE u1.uni_logo_id = ?"); 
mysqli_stmt_bind_param($stmt, "i", $unilogoid); 
mysqli_stmt_execute($stmt);