質問編集履歴

3

えdっr

2017/01/26 10:06

投稿

earnest_gay
earnest_gay

スコア615

test CHANGED
File without changes
test CHANGED
@@ -76,6 +76,40 @@
76
76
 
77
77
  ```php
78
78
 
79
+
80
+
81
+ //取得サイズリスト作成
82
+
83
+ for($px=25;$px<=500;$px+=25) {
84
+
85
+ if($px <= 100) {
86
+
87
+ //25px単位
88
+
89
+ $size_list[] = $px;
90
+
91
+ } else {
92
+
93
+ //50px単位
94
+
95
+ if($px % 2 == 0) {
96
+
97
+ $size_list[] = $px;
98
+
99
+ }
100
+
101
+ }
102
+
103
+ }
104
+
105
+
106
+
107
+ foreach ($size_list as $key => $value) {
108
+
109
+
110
+
111
+
112
+
79
113
  $sql = "INSERT IGNORE INTO user_image";
80
114
 
81
115
  $sql .= " (user_id,file,type,name,size)";
@@ -90,6 +124,14 @@
90
124
 
91
125
  $sql .= " ,name = '$file_name'";
92
126
 
127
+ }
128
+
129
+
130
+
131
+ //で何回か回してます。
132
+
133
+ //肝心なのはSQLの部分、、、
134
+
93
135
  ```
94
136
 
95
137
 

2

w

2017/01/26 10:06

投稿

earnest_gay
earnest_gay

スコア615

test CHANGED
File without changes
test CHANGED
@@ -56,6 +56,10 @@
56
56
 
57
57
 
58
58
 
59
+
60
+
61
+ 追記
62
+
59
63
 
60
64
 
61
65
  user_idとsizeをuniqueにして試してるのですが、下記のようになってしまいます。

1

sd

2017/01/26 10:04

投稿

earnest_gay
earnest_gay

スコア615

test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,49 @@
53
53
 
54
54
 
55
55
  更新対象として、user_idとnameかsizeがuniqueKeyなら、、、ということをしたいんですが、これは極端にsizeもuniqueKeyにするだけで勝手に判断してくれるのでしょうか?
56
+
57
+
58
+
59
+
60
+
61
+ user_idとsizeをuniqueにして試してるのですが、下記のようになってしまいます。
62
+
63
+
64
+
65
+ ![イメージ説明](108d6fd77e1a5f376ec7bce42237068d.png)
66
+
67
+
68
+
69
+ SQLの部分は下記です。
70
+
71
+
72
+
73
+ ```php
74
+
75
+ $sql = "INSERT IGNORE INTO user_image";
76
+
77
+ $sql .= " (user_id,file,type,name,size)";
78
+
79
+ $sql .= " VALUES ('$id','$file','$file_type','$file_name','$prefix')";
80
+
81
+ $sql .= " ON DUPLICATE KEY UPDATE";
82
+
83
+ $sql .= " file = '$file'";
84
+
85
+ $sql .= " ,type = '$file_type'";
86
+
87
+ $sql .= " ,name = '$file_name'";
88
+
89
+ ```
90
+
91
+
92
+
93
+ ![イメージ説明](2cebd69a185bd19bb467715ac4cde1f7.png)
94
+
95
+
96
+
97
+ レコードがないときにはインサートされて
98
+
99
+ レコードがあるときにはUPDATEするには
100
+
101
+ 本質問ではどうすればよいでしょうか?