Me gustaría archivar a un estudiante moviendo el registro de una tabla a otra. Este es el código que estoy tratando de usar:php y mysql copiar registro de una tabla a otra
<?php
ini_set('memory_limit', '100M');
$sql="Select * from `register` where student_id=".$student_id;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
//Call the function to archive the table
//Function definition is given below
archive_record(archive,$row);
//Once you archive, delete the record from original table
$sql = "Delete from `register` where student_id=".$student_id;
mysql_query($sql);
function archive_record($archived_tablename,$row)
{
$sql = "insert into $archived_tablename values(";
$i=0;
while($i<(count($row)-1))
{
$sql.="'".$row[$i]."',";
}
$i=$i+1;
$sql.="'".$row[$i]."'";
$sql.=")";
mysql_query($sql);
return true;
}
problema que estoy teniendo es que estoy error al obtener:
Fatal error: Fuera de memoria (asignado 80.478.208) (tratado de asignar 80216043 bytes) en /archive-student.php en la línea XX
¿Hay alguna forma diferente de hacerlo, excepto tener una columna llamada archivar y cambiar de 0 a 1? Esto se debe a que tengo de 30 a 50 páginas seleccionando los registros de la tabla. :)
Se podría utilizar un 'INSERT ... SELECT'. ¿Cuál es la estructura de tus tablas? – bfavaretto