我想爲我的數據庫中的每個用戶添加占星術標誌。我已經存儲了他們的生日,並且我有一個while循環將我需要的信息放入數組中,但是我無法使foreach語句正常工作,以便我可以使用數組中的每個值來計算我需要的將新信息重新插入數據庫。這是我到目前爲止有:使用PHP foreach更新數據庫
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$update = array(
'user' => $row['username'],
'day' => $row['bday'],
'month' => $row['bmon']
);
}
print_r($update);
的print_r($更新)成功打印在數據庫中像這樣的最後一個條目:
Array ([user] => johnsmith [day] => 30 [month] => 6)
我已經試過像100個不同的東西,但它不是爲我工作。這就是我想要做的事:
foreach($update) {
$astrology = "";
if(($month==1 && $day>19)||($month==2 && $day<19)){
$astrology = 'Aquarius';
}else if(($month==2 && $day>18)||($month==3 && $day<21)){
$astrology = 'Pisces';
}else if(($month==3 && $day>20)||($month==4 && $day<20)){
$astrology = 'Aries';
}else if(($month==4 && $day>19)||($month==5 && $day<21)){
$astrology = 'Taurus';
}else if(($month==5 && $day>20)||($month==6 && $day<21)){
$astrology = 'Gemini';
}else if(($month==6 && $day>20)||($month==7 && $day<23)){
$astrology = 'Cancer';
}else if(($month==7 && $day>22)||($month==8 && $day<23)){
$astrology = 'Leo';
}else if(($month==8 && $day>22)||($month==9 && $day<23)){
$astrology = 'Virgo';
}else if(($month==9 && $day>22)||($month==10 && $day<23)){
$astrology = 'Libra';
}else if(($month==10 && $day>22)||($month==11 && $day<22)){
$astrology = 'Scorpio';
}else if(($month==11 && $day>21)||($month==12 && $day<22)){
$astrology = 'Sagittarius';
}else if(($month==12 && $day>21)||($month==1 && $day<20)){
$astrology = 'Capricorn';
}
$query = "UPDATE useroptions SET astrology='$astrology' WHERE username='$user'" ;
$db_conx->query($query);
}
爲什麼要將計算的字段添加到數據庫?這是什麼意見(如果甚至需要)。 – Blindy
會發生什麼?此代碼是否成功運行?有沒有錯誤? – klugerama
@ klugerama yes'foreach($ update){'肯定有效。不提空變量和'$ update',1維數組。 – Peter