2013-12-18 19 views
1

我必須從這樣的表格中獲得一些圖片(兩列 - 圖e foto): 1 - img1 2 - img2 3 - IMG3 4 - IMG4 ECC ...php爆炸一個數組(一列)並將其放入mysql(不同列)

我得到一個這樣的查詢的信息:

$query_foto="SELECT foto FROM foto_annunci WHERE codice_annuncio = 'paolo-146110'"; 
$rs_foto=mysql_query("$query_foto",$dbh) or die("Errore query database foto: " . mysql_error()); 
while($result3 = mysql_fetch_array($rs_foto)){ 
$foto1 = $result3['0']['foto']; 
$foto2 = $result3['1']['foto']; 
$foto3 = $result3['2']['foto']; 
$foto4 = $result3['3']['foto']; 

然後我不得不把所有的圖像到另一桌,桌上有5列已經寫:

ID - 名字 - 國家 - foto1 - foto2 - foto3 - foto4

此刻,我想這一點,但只有最後一個記錄已鴨舌在第一列保存到數據庫:

$query="UPDATE annunci_x90 SET 
foto1 = '$foto1', 
foto2= '$foto2', 
foto3= '$foto3', 
foto4= '$foto4' 

WHERE id=41"; 

$result=mysql_query("$query",$dbh) or die("Errore query database: " . mysql_error()); 

所以我的問題是從第一個表中獲取圖像並將這些圖像放入foto1 - foto2 - foto3列中的secon表(UPDATE查詢)中。

我該如何得到它? 謝謝

+0

您是否在while循環或之後執行更新?爲了您的邏輯工作,它應該在while循環中。如果你把它放在循環之後,只有最後一條記錄會在db中被更新。 – Seb

+0

感謝您的回答。我做了,但沒有工作,只有最後的數據在db – user3115924

+1

因爲'WHERE id = 41'是硬編碼的,所以只會更新記錄。 – jeff

回答

0
$query_foto="SELECT foto FROM foto_annunci WHERE codice_annuncio = 'paolo-146110'"; 
$rs_foto=mysql_query("$query_foto",$dbh) or die("Errore query database foto: " . mysql_error()); 
$foto = array(); 
while($result3 = mysql_fetch_array($rs_foto)){ 
$foto[] = $result3['foto']; 
} 

$query = "UPDATE annunci_x90 SET 
foto1='" . isset($foto[0]) ? $foto[0] : '' . "', 
foto2='" . isset($foto[1]) ? $foto[1] : '' . "', 
foto3='" . isset($foto[2]) ? $foto[2] : '' . "', 
foto4='" . isset($foto[3]) ? $foto[3] : '' . "' 
WHERE 
id='41' 
"; 
+0

感謝您的回答,但我遇到了一個問題:錯誤:您的SQL語法有錯誤;請查看與您的MySQL服務器版本相對應的手冊,以便在第1行的'paolo-146110-3LOGOsconti2013_a.jpg'附近使用正確的語法。您是否知道如何運行它?謝謝 – user3115924

+0

海曼,我改變它:foto1 ='$ foto [0]', 它的工作原理。我想知道你的方式,但是你解決了我一個很好的問題。謝謝!!!!! – user3115924