teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

えdっr

2017/01/26 10:06

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -37,6 +37,23 @@
37
37
  SQLの部分は下記です。
38
38
 
39
39
  ```php
40
+
41
+ //取得サイズリスト作成
42
+ for($px=25;$px<=500;$px+=25) {
43
+ if($px <= 100) {
44
+ //25px単位
45
+ $size_list[] = $px;
46
+ } else {
47
+ //50px単位
48
+ if($px % 2 == 0) {
49
+ $size_list[] = $px;
50
+ }
51
+ }
52
+ }
53
+
54
+ foreach ($size_list as $key => $value) {
55
+
56
+
40
57
  $sql = "INSERT IGNORE INTO user_image";
41
58
  $sql .= " (user_id,file,type,name,size)";
42
59
  $sql .= " VALUES ('$id','$file','$file_type','$file_name','$prefix')";
@@ -44,6 +61,10 @@
44
61
  $sql .= " file = '$file'";
45
62
  $sql .= " ,type = '$file_type'";
46
63
  $sql .= " ,name = '$file_name'";
64
+ }
65
+
66
+ //で何回か回してます。
67
+ //肝心なのはSQLの部分、、、
47
68
  ```
48
69
 
49
70
  ![イメージ説明](2cebd69a185bd19bb467715ac4cde1f7.png)

2

w

2017/01/26 10:06

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -27,6 +27,8 @@
27
27
 
28
28
  更新対象として、user_idとnameかsizeがuniqueKeyなら、、、ということをしたいんですが、これは極端にsizeもuniqueKeyにするだけで勝手に判断してくれるのでしょうか?
29
29
 
30
+
31
+ 追記
30
32
 
31
33
  user_idとsizeをuniqueにして試してるのですが、下記のようになってしまいます。
32
34
 

1

sd

2017/01/26 10:04

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -25,4 +25,27 @@
25
25
  最終的にこうなってしまいます。
26
26
  ![イメージ説明](a8bf8efea89ba7504395a816e4879a63.png)
27
27
 
28
- 更新対象として、user_idとnameかsizeがuniqueKeyなら、、、ということをしたいんですが、これは極端にsizeもuniqueKeyにするだけで勝手に判断してくれるのでしょうか?
28
+ 更新対象として、user_idとnameかsizeがuniqueKeyなら、、、ということをしたいんですが、これは極端にsizeもuniqueKeyにするだけで勝手に判断してくれるのでしょうか?
29
+
30
+
31
+ user_idとsizeをuniqueにして試してるのですが、下記のようになってしまいます。
32
+
33
+ ![イメージ説明](108d6fd77e1a5f376ec7bce42237068d.png)
34
+
35
+ SQLの部分は下記です。
36
+
37
+ ```php
38
+ $sql = "INSERT IGNORE INTO user_image";
39
+ $sql .= " (user_id,file,type,name,size)";
40
+ $sql .= " VALUES ('$id','$file','$file_type','$file_name','$prefix')";
41
+ $sql .= " ON DUPLICATE KEY UPDATE";
42
+ $sql .= " file = '$file'";
43
+ $sql .= " ,type = '$file_type'";
44
+ $sql .= " ,name = '$file_name'";
45
+ ```
46
+
47
+ ![イメージ説明](2cebd69a185bd19bb467715ac4cde1f7.png)
48
+
49
+ レコードがないときにはインサートされて
50
+ レコードがあるときにはUPDATEするには
51
+ 本質問ではどうすればよいでしょうか?