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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обновление двух таблиц одинаковыми данными

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Lolya
Отправлено: 05 Октября, 2021 - 12:32:43
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Май 2018  


Помог: 2 раз(а)




Есть две таблицы с одинаковыми данными, нужно объединить в один запрос обновлением этих двух таблиц сразу, а не два запроса вешать.

Сейчас это выглядит так:
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 для запроса обновления. Это поле есть в одной и другой таблице, все три поля что обновляются, присутствуют в этих двух таблицах.

Подскажите что я не так делаю. Спасибо за подсказки.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB