Увеличение ценности записей

  • Автор темы White Collar
  • 25
  • Обновлено
  • 13, May 2024
  • #1
Я хочу вставить группу записей из темпоральной таблицы, увеличив значение поля CONTA от последнего вставленного значения при работе с таблицей.

У меня есть это:
 $sql = "SELECT max(CONTA) conta FROM table_work"; // I get the last value of CONTA

$sth = $BD->prepare($sql);

$sth->execute();

$newconta = $row['id'] + 1; // Increasing +1

$sql = "INSERT INTO table_work (conta, cod_t2, nom_t2)

SELECT ".$newconta.", cod_t1, nom_t1

FROM table_temp

WHERE periodo = 201611";

$sth = $BD->prepare($sql);

$sth->execute();

PHP: Как вставить приращение в каждую запись? Поле conta не является инкрементным, поскольку оно сбрасывается каждый год.

White Collar


Рег
27 Aug, 2012

Тем
1

Постов
2

Баллов
12
  • 19, May 2024
  • #2
Я тестировал и изменил свое требование, чтобы идти тем же путем. Я хочу обновить каждую запись таблицы 1, но это не работает.
 $sql = "SELECT cod, nom from table1";

$sth = $BD->prepare($sql);

$sth->execute();

$valor = 0;

while ($fila = $sth->fetch(PDO::FETCH_ASSOC)) {

$valor++;

echo $valor." ";

echo $fila['cod_stud'];

echo "</br>";

$sql= "UPDATE table1 SET orden = ".$valor; <-- This parte does not work.

$sth = $BD->prepare($sql);

$sth->execute();

}
PHP: Может ли кто-нибудь мне помочь?
 

sems


Рег
28 Sep, 2014

Тем
0

Постов
3

Баллов
3
  • 20, May 2024
  • #3
Это связано с тем, что вы закрываете запрос до того, как добавите в него переменную $file['cod'] . Измените запрос обновления на это:
 
$sql= "UPDATE table1 SET orden =? WHERE cod =?";
$sth = $BD->prepare($sql);
$sth->execute([$valor, $fila['cod']]);
PHP: использует подготовленный запрос и правильно закрывает запрос на обновление.
 

10-19


Рег
11 Jun, 2007

Тем
0

Постов
2

Баллов
2
Тем
49554
Комментарии
57426
Опыт
552966