Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Обновление двух таблиц одинаковыми данными
Форумы портала PHP.SU » » Вопросы новичков » Обновление двух таблиц одинаковыми данными

Страниц (1): [1]
 

1. Lolya - 05 Октября, 2021 - 12:32:43 - перейти к сообщению
Есть две таблицы с одинаковыми данными, нужно объединить в один запрос обновлением этих двух таблиц сразу, а не два запроса вешать.

Сейчас это выглядит так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $torrents = array();
  3. $res = sql_query("SELECT torrent, seeder, COUNT(*) AS c FROM peers GROUP BY torrent, seeder") or sqlerr(__FILE__,__LINE__);
  4. while($row = mysql_fetch_assoc($res)){if ($row["seeder"] == "yes")$key = "seeders";else $key = "leechers";$torrents[$row["torrent"]][$key] = $row["c"];}
  5. $res = sql_query("SELECT torrent, COUNT(*) AS c FROM comments GROUP BY torrent") or sqlerr(__FILE__,__LINE__);
  6. while($row = mysql_fetch_assoc($res)){$torrents[$row["torrent"]]["comments"] = $row["c"];}$fields = explode(":", "comments:leechers:seeders");
  7. $res = sql_query("SELECT id, seeders, leechers, comments FROM torrents") or sqlerr(__FILE__,__LINE__);while($row = mysql_fetch_assoc($res)){$id = $row["id"];$torr = $torrents[$id];
  8. foreach($fields as $field){if(!isset($torr[$field]))$torr[$field] = 0;}$update = array();foreach($fields as $field){if($torr[$field] != $row[$field])$update[] = "$field = ".$torr[$field];}
  9. if(count($update)){sql_query("UPDATE torrents SET ".implode(", ", $update)." WHERE id = $id") or sqlerr(__FILE__,__LINE__);
  10. sql_query("UPDATE browse SET ".implode(", ", $update)." WHERE id = $id") or sqlerr(__FILE__,__LINE__);}}
  11.  


Если я меняю на:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if(count($update)){sql_query("UPDATE torrents, browse SET ".implode(", ", $update)." WHERE id = $id") or sqlerr(__FILE__,__LINE__);}
  3.  


то бьет ошибку на неизвестное поле seeders для запроса обновления. Это поле есть в одной и другой таблице, все три поля что обновляются, присутствуют в этих двух таблицах.

Подскажите что я не так делаю. Спасибо за подсказки.

 

Powered by ExBB FM 1.0 RC1