【问题标题】:php explode an array (one column) and put it into mysql (different column)php爆炸一个数组(一列)并放入mysql(不同列)
【发布时间】:2026-01-16 23:15:02
【问题描述】:

我必须从这样的表格中获取一些图片(两列 - id e foto): 1 - 图像1 2 - img2 3 - 图像3 4 - img4 抄送...

我从这样的查询中获得此信息:

$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

目前我正在尝试此操作,但只有最后一条记录已保存到第一列的 db 中:

$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。

我怎样才能得到它? 谢谢

【问题讨论】:

  • 你是在while循环中还是之后进行更新?为了使您的逻辑正常工作,它应该在 while 循环中。如果你把它放在循环之后,只有最后一条记录会在数据库中更新。
  • 感谢您的回答。我做到了,但没有工作,只有数据库中的最后一个数据
  • 由于 'WHERE id=41' 是硬编码的,因此只会更新该记录。
  • 我将更新一行的 4 条记录,而不仅仅是一行的一条记录。有什么建议吗?

标签: php mysql sql


【解决方案1】:
$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'
";

【讨论】:

  • 感谢您的回答,但我遇到了一个问题:错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“paolo-146110-3LOGOsconti2013_a.jpg”附近使用正确的语法。你知道如何运行它吗?谢谢
  • 嘿伙计,我把它改成这样:foto1='$foto[0]',它就可以了。我想知道你的方式但是你解决了我一个很好的问题。谢谢!!!!!!
最近更新 更多