
Como insertar o actualizar un registro si existe en la base de datos
Publicado por Jose (5 intervenciones) el 03/07/2016 01:14:50
Como insertar o actualizar un registro si existe en la base de datos
Hola a todos espero que encuentren muy bien, soy nuevo en éste foro y requiero de ayuda para un problema típico que se menciona mucho en la web, pero las soluciones que encontrado no se adaptan a lo que en realidad necesito, aunque éstas las tome como ejemplo, el punto es que no puedo actualizar registros existentes en la base de datos, sólo se insertan como nuevos, les voy a explicar el contexto de lo que busco para mi proyecto:
1) Imaginemos que recibimos insumos médicos en un departamento de recepcion y depacho (donación) de éstos insumos.
2) Nos encontramos con la opción de registrar los insumos nuevos que no están registrados en el sistema (obviamente) y con otra para registrar o actualizar los datos de recepcion que sabemos que son muy diferentes a los anteriores.
3) Ahora bien, a nivel de base de datos obtenemos dos tablas: la tabla de datos de los insumos y la tabla de datos de recepción.
4) En el caso que recibamos insumos ya existentes en la tabla de los datos de los insumos, optamos por registrar o actualizar los datos de recepcion, dependiendo si se encuentran registrados para actualizar y sino registrarlos solamente, se nos muestra un formulario de registro de los datos de recepción, y como dijimos éstos son muy distintos a los datos de los insumos.
5) Disponemos de un botón llamado "buscar" que abre una ventana pop-up con la opción de buscar de alguna formar un insumo, en específco, que justamente son los datos de la primera tabla de los datos de los insumpos de la que ya hablamos, y luego al seleccionar los datos se cierre ésta ventana y se muestre en el formulario sólo la clave primera de la tabla de los insumos y un dato de referencia (descripcion), siendo ésta clave primaria, la clave foránea obviamente de la tabla de recepcion.
6) Finalmente pulsamos el boton "botón" guardar para insertar o actualizar los datos datos como ya dijimos dependiendo si ya fueron recibidos por primera vez para actualizarlos y sino insertarlos solamente.
Este es el codigo que tengo, como dije me inserta registros nuevos solamente, y me da errores en el mysql_num_row, que es la condición para que me inserte o me actualize los registros. De ante mil gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
include ('conexionbd.php');
$idmed=$_POST['id_med'];
$cantidad=$_POST['cantidad'];
$fecha=$_POST['fecha'];
$responsable=$_POST['responsable'];
$con = new DBManager;
if($con->conectar()==true){
$consulta=("SELECT * FROM recepcion WHERE numero='$idmed'");
$resultado=mysql_query($consulta) or die (mysql_error());
}
while($row = mysql_fetch_array($resultado)) {
$cont4++;
}
mysql_free_result($resultado);
$cant1=$cont4;
if (mysql_num_rows($resultado) == 0) {
$consulta2="INSERT INTO recepcion (numero,cantidad_recep,fecha_recep,resp_recep)
VALUES ('$idmed','$cantidad','$fecha','$responsable')";
$consulta3=mysql_query($consulta2,$consulta);
echo"
<script language='javascript'>
alert('LOS DATOS HAN SIDO GUARDADOS CON EXITO')
window.location='registroins.php'
</script>";
exit();
}
else
if (mysql_num_rows($resultado) > 0) {
$consulta4="UPDATE recepcion SET numero='$idmed', cantidad_recep='$cantidad', fecha_recep='$fecha', resp_recep='$responsable' where numero='$idmed'";
$consulta5=mysql_query($consulta4,$consulta);
echo"
<script language='javascript'>
alert('LOS DATOS HAN SIDO ACTUALIZADOS CON EXITO')
window.location='registroins.php'
</script>";
exit();
}
else
{
echo"
<script language='javascript'>
alert('NO SE HAN ENCONTRADO DATOS PARA GUARDAR O ACTUALIZAR')
window.location='registroins.php'
</script>";
exit();
}
?>
Valora esta pregunta


0