Dima83
Новичок
У меня есть две таблицы.
1. attachment – там содержится 15 записей
2. download – статьи – 600 записей.
В download есть поле id_pos, это поле нужно обновить и добавить содержимое id 15 записей из другой таблицы attachment.
Как сделать обновление id_pos в download только не каждую запись, а предположим с интервалом в 3, 4 или 5 записей?
1. attachment – там содержится 15 записей
2. download – статьи – 600 записей.
В download есть поле id_pos, это поле нужно обновить и добавить содержимое id 15 записей из другой таблицы attachment.
PHP:
<?php
include "config.php";
?>
<script src="https://mysite5.su/js/jquery-1.9.1.js"></script>
<link rel="StyleSheet" type="text/css" href="style.css">
<?php
//Подсчет attachment, чтобы знать сколько записей
function count_attach()
{
global $dbh;
$query = "SELECT * FROM attachment";
$STH = $dbh->prepare($query);
$STH->execute();
$item = $STH->fetch(PDO::FETCH_ASSOC);
$count_attach = $STH->rowCount();
return $count_attach;
}
//Выбираем все записи из attachment
try {
$query = "SELECT * FROM attachment";
$STH = $dbh->prepare($query);
$STH->execute();
$items = $STH->fetchAll(PDO::FETCH_ASSOC);
$STH = $dbh->prepare($query);
$STH->execute();
$count = count_attach();
}
catch(PDOException $e) {
echo "Обнаружена ошибка. Напишите администратору. $email<br>";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
//Выбираем записи из download, эквивалентно количеству записей в attachment
try {
$query = "SELECT * FROM download ORDER BY ID LIMIT $count";
$STH = $dbh->prepare($query);
$STH->execute();
$news = $STH->fetchAll();
//Обновляем id_pos (по порядку), по id которое прописано в условии
$STH = $dbh->prepare("UPDATE download SET id_pos = ? WHERE id = ?");
foreach ( $news as $key=>$n ) {
$STH->execute(array($items[$key]["id"], $n["id"]));
}
}
catch(PDOException $e) {
echo "Обнаружена ошибка. Напишите администратору. $email<br>";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
?>