2013-12-18 71 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