我知道这应该很简单,但我无法自己搞清楚。所以继承代码:
while($row01=mysql_fetch_array($res01))
{
$results=stripslashes($row01['spec_search'])." ";
echo $results;
mysql_query("update products set search='".$results."' WHERE id='".$row['id']."' ");
}
$ results 会返回多个值。它回音得很好,比如“树袋鞋”。但是在* mysql_query *中,只有最后一个结果(本例中的鞋子)在我的表中得到更新。我怎样才能让一切都得到更新?
非常感谢!
答案 0 :(得分:0)
您在查询中使用$row['id']
,但$row01['id']
访问了循环的当前行。
数据库不会更新一次,但会多次更新。但是,当更新应用于同一行时,只有最后一次更新可见。
将您的代码更新为以下
while($row01=mysql_fetch_array($res01))
{
$results=stripslashes($row01['spec_search'])." ";
$specArr[$row['id']][]=$row01['id'];
echo $results;
mysql_query("update products set search='".$results."' WHERE id='".$row01['id']."' ");
}
答案 1 :(得分:0)
我找到了将数据放入数组然后将其恢复的正确方法。这是:
$results = array(); //make an array
while($row01=mysql_fetch_assoc($res01)) //assoc is needed, not ok with array!
{
$res=stripslashes($row01['spec_search'])." ";
$results[] = $res; //load up in array
mysql_query("update products set search='".implode('', $results)."' WHERE id='".$row['id']."' ");
}
echo implode('', $results); //this is how get data back from array