0

我知道这应该很简单,但我自己无法弄清楚。所以继承人的代码:

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* 处,只有最后一个结果(本例中的鞋子)在我的表中得到更新。我怎样才能做到这一点,以便一切都得到更新?

非常感谢!

4

2 回答 2

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
于 2013-09-24T15:19:35.430 回答
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']."' ");
}
于 2013-09-24T11:33:04.320 回答