我是数据库初学者,我一直在尝试将数据从一个表插入另一个表。 我有以下代码:
$codigoAlumno = $_GET['txtValidarCodigo'];
$codigoMateria = $_GET['txtValidarMateria'];
if($codigoAlumno && $codigoMateria){
include('conexion.php');
//GUARDAR COINCIDENCIA CON CODIGOS
$query = mysql_query("SELECT * FROM cat_materia WHERE vchCodigoMateria='$codigoMateria'");
$rowStn = mysql_num_rows($query);
$query_2 = mysql_query("SELECT * FROM cat_alumno WHERE iCodigoAlumno='$codigoAlumno'");
$rowSub=mysql_num_rows($query_2);
if($rowSub == 0){
echo "No coicide con ningun registro";
}else{
if($rowStn == 0){
echo "No coicide con ningun registro";
}else{
//AGREGAR DATOS
mysql_query("INSERT INTO cat_rel_alumno_materia(iCodigoAlumno,vchCodigoMateria,fCalificacion)VALUES('$codigoAlumno','$codigoMateria'");
$registro = mysql_affected_rows();
echo 'Se ha completado el regisitro '.$registro;
}
}
}else{
echo "Ingrese los campos";
}
真的,我已经搜索了不同的方法,但没有任何效果。
最佳答案
使用 PHP 执行两个单独的查询并将结果逐行插入数据库的效率不是很高,而且是一项艰巨的工作。您可以改为使用 INSERT SELECT syntax
With INSERT ... SELECT, you can quickly insert many rows into a table from one or many tables.
因此您的大部分代码可以替换为:
INSERT INTO cat_rel_alumno_materia(iCodigoAlumno,vchCodigoMateria,fCalificacion)
SELECT col1, col2, col3 FROM cat_alumno
注意适当替换 col1、col2、col3。如果您想合并 cat_alumno 和 cat_materia
你可以
INSERT INTO cat_rel_alumno_materia(iCodigoAlumno,vchCodigoMateria,fCalificacion)
SELECT c1.col1, c2.col2, c2.col3 FROM cat_alumno c1 INNER JOIN cat_materia c2 ON iCodigoAlumno = vchCodigoMateria
注意:由于您没有提到您的表是什么样的,因此上述查询仅作为一般准则给出。它不会按原样工作,您必须稍作修改以适应您的表结构。
关于php - 将两个表中的数据插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33151458/