猿问

如何進行數據表與數據表之間的關聯性更新?

SQL

$rs = $do->query(
    "SELECT
      t.name as name,
      tr.object_id as object_id
    FROM wp_terms as t
    JOIN wp_term_relationships as tr ON tr.term_taxonomy_id = t.term_id
    JOIN blog as b ON b.url = tr.object_id "
  );

UPDATE

while ($r = mysqli_fetch_array($rs)){

  $key = '';
  $key .= $r['name'];

  $do->query(
    "UPDATE `blog` SET
    `tags` = '{$key}'
    WHERE url = '{$r['object_id']}' "
  );

}

根據數據表 ttr 利用 tr.object_idt 找對應的 t.name

數據庫結構:
object_id / name

目的是我要更新到 數據表 blogtags 字段中,並利用 , 間隔。
tr.object_id 也等於是 b.url

blog as b
url / tags

例如13421 這篇 blog,我想將他的所有 name 都丟到 b.tags 中,用 , 間隔

但現在發生的問題是,永遠都是最後一個被更新進去 b.tags !
假設這篇 blog 找到了 a,b,c,d,e, ,當丟進去 b.tags 的時候就只有 e,
這是咋了?

翻过高山走不出你
浏览 271回答 1
1回答

Smart猫小萌

你的while,每执行一次都有将$key置空并连接上$r['name'],并且每次while都有UPDATE。 你要把$key=''提到循环外。 我不知道你是怎么打算的的,照你的代码来看,你如果是a,b,c,d,e五个,就会更新五次为a,、a,b,、a,b,c,、a,b,c,d,、a,b,c,d,e,。如果你只想更新一次,你的UPDATE也要提到循环外
随时随地看视频慕课网APP
我要回答