Bir koşul eşleşen tüm alanları güncellemek için bir MySQL tetik kullanılarak

1 Cevap php

Ne yapmaya çalışıyorum $i Daha önce MySQL tetikleyici asla kullanmadım ama ben bunu yapmak için en kolay yolu olduğuna inanıyorum en son değere her insert sorgunun sütun ayarlamaktır. Ben diğer fikir ve önerilerine açık olacaktır. Şu anda var:

$i = 1;
foreach($_FILES["upload_project_images"]["name"] as $key => $name) {   
      $p_image_query = " 
        delimiter |
            CREATE TRIGGER update_start_num BEFORE INSERT ON project_images
            FOR EACH ROW 
            BEGIN
                UPDATE `project_images` SET `NEW.i_start_num` = '$i' WHERE `i_project_id` = '$prject_id' AND 'i_type' = '2';
            END |
        delimiter;
        INSERT INTO `project_images` (i_name, i_type, i_project_id,i_start_num) VALUES ('$upload_project_images_name', '2', '$project_id','$i');";

   $result=mysql_query($p_image_query) or die(mysql_error()); 
   $i++;
  }

Fikir i_start_num son $i eşit oluyor böylece sorgu güncellerken ben orada almak olabilir.

Benim ilk fikir sadece birini işe Denedim otherbut sonra bir sorguyu çalıştırmak oldu:

  $i = 1;
  foreach($_FILES["upload_project_images"]["name"] as $key => $name) {   
        //insert the file data into the database
        $p_image_query = "INSERT INTO `project_images` (i_name, i_type, i_project_id,i_start_num) VALUES ('$upload_project_images_name', '2', '$project_id','$i')"
         $result=mysql_query($p_image_query) or die(mysql_error()); 
    $i++; 

  //update the starting image id number on all project images
        $p_update_startnum_qry ="UPDATE `project_images` SET `i_start_num` = '$i' WHERE `i_project_id` = '$prject_id' AND 'i_type' = '2'";
        $p_update_startnum_qry_result=mysql_query($p_update_startnum_qry) or die(mysql_error());
    }

De başarısız olduğu.

1 Cevap

Hmm belki bu deneyin:

// pseudo code
INSERT INTO `project_images` (i_name, i_type, i_project_id,i_start_num) 
VALUES ('$upload_project_images_name', '2', '$project_id','$i')
ON DUPLICATE KEY UPDATE `project_images` 
SET `i_start_num` = '$i' 
WHERE `i_project_id` = '$prject_id' AND 'i_type' = '2'