Nueva pregunta

Pregunta:

Fecha: 26-01-2017 14:04:12 (En Español)

Buscar un dato de una tabla en otra con PHP[Resuelta]

Saludos, se que sera una pregunta simple pero no encuentro la solución, tengo dos tablas idénticas, docente y profesor con los campos: doc, ape, nom, tel, correo y deseo desde la tabla docente recorrer uno a uno y verificar en los registros de la tabla profesor mediante el campo doc los registros si no se halla un registro en el campo doc igual que inserte todos los datos en la tabla profesor, muestro el código para la ayuda, les agradezco de ante mano.

$sql = "SELECT * FROM docente";
$sql1 = "SELECT * FROM profesor";
$result = mysql_query($sql);
$result1 = mysql_query($sql1);
if ($result != NULL) {
    if (mysql_num_rows($result) > 0) {
// este procedimiento si hace lo que necesito  
        while ($row = mysql_fetch_array($result)) {

            if ($result1 != NULL) {
                $documento1 = $row['doc'];
                $consult = mysql_query("SELECT * FROM profesor WHERE doc = $documento1");
                $row1 = mysql_fetch_array($result1);

                if ($consult != NULL) {
                    mysql_query("UPDATE `profesor` SET `estado`='s' WHERE doc = $documento1");
                    $num++;
                    echo "doc: " . $row1['doc'] . " NOMBRE: " . $row1['nom'] . " APELLIDO: " . $row1['ape'] . " TIPO: " . $row1['tipo'];
                }

// aqui es donde deseo hacer la insercion del registro no ubicado y no se ejecuta

                if ($documento1 != $row1['doc']) {
                    mysql_query("INSERT INTO profesor(id, nom, ape, doc, con, fecha, dir, 
						tel, cel, correo, especialidad, estado, tipo) 
			    		VALUES('$id', '$ape', '$nom', 'doc', '$con', '$fecha', 'dir',
			    		'$tel', '$cel', '$correo', '$especialidad', '$estado', '$tipo')");
                    $num1++;
                }
            }
        }
    }
    mysql_free_result($result);
}
mysql_close();
Etiquetas: MySQL - PHP - Pregunta Votos: 0 - Respuestas: 2 - Vistas: 10 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 26-01-2017 22:10:56 Hola Pedro
    Creo que estás sobrecargando el algoritmo.
    Lo puedes simplificar utilizando un LEFT JOIN para encontrar los registros de la tabla docente que no tengan su duplicado en la tabla profesor:

    SELECT d.doc FROM docente d LEFT JOIN profesor p ON d.doc = p.doc WHERE d.doc IS NULL;


    Luego itera sobre los resultados y aplica un INSERT INTO SELECT:

    INSERT INTO profesor SELECT * FROM docente WHERE doc = {$idIterado}


    Con esas dos consultas reduces la complejidad de tu script e incluso se vuelve más sencillo de leer.

    Como dato adicional te recomiendo que NO utilices la extensión mysql y utilices mysqli.

    También cuando vayas a pegar código PHP utiliza la opción adecuada para el mismo, de esta manera facilitarás la lectura del código a quienes quieran ayudarte.

    Saludos!
      Votos: 4 - Link respuesta
     
  • Fecha: 27-01-2017 09:04:23 Gracias por la ayuda   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com