PHP - Porque inserta el registro si ya existe

 
Vista:
sin imagen de perfil
Val: 27
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Porque inserta el registro si ya existe

Publicado por Abigail (14 intervenciones) el 30/05/2018 23:12:15
hola buena tarde alguien que me pueda decir por que inserta el registro si ya me manda mensaje de que el registro ya esta en la base este es mi codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include("../mod_configuracion/configuracion.php");
//}
$consultamos = 'SELECT * FROM catalogo_tratamiento WHERE nombre="' .$_POST['nombre'] . '"';
$comprovacion = mysqli_query($link,$consultamos);
      if(mysqli_num_rows($comprovacion)==0){
        } else {
      $error = "<center>Ya existe el material</center>";
      }
  $var=" INSERT INTO catalogo_tratamiento(nombre,observaciones,precio)
  VALUES ('$nombre','$observaciones','$precio')";
 
 mysqli_query($link, $var) or mysqli_error();
 
mysqli_close($link);
}
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Porque inserta el registro si ya existe

Publicado por Alejandro (839 intervenciones) el 30/05/2018 23:24:05
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Porque la instruccion esta fuera del if

Si el numero de registros es igual a 0
no hacer nada
de lo contrario
ya existe el material

el flujo continuea en la linea inmediata al terminar el else.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
include("../mod_configuracion/configuracion.php");
//}
		$consultamos = 'SELECT * FROM catalogo_tratamiento WHERE nombre="' .$_POST['nombre'] . '"';
		$comprovacion = mysqli_query($link,$consultamos);
		if(mysqli_num_rows($comprovacion)==0){
			// no hacer nada;
		} else {
			$error = "<center>Ya existe el material</center>";
		}
 
		// continuar despues de la instruccion de control
		$var=" INSERT INTO catalogo_tratamiento(nombre,observaciones,precio)
		VALUES ('$nombre','$observaciones','$precio')";
 
		mysqli_query($link, $var) or mysqli_error();
 
		mysqli_close($link);
	}
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 27
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Porque inserta el registro si ya existe

Publicado por Abigail (14 intervenciones) el 31/05/2018 03:19:09
intente hacerlo asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include("../mod_configuracion/configuracion.php");
//}
if(mysqli_num_rows($comprovacion)==0){
        $consultamos = 'SELECT * FROM catalogo_tratamiento WHERE nombre="' .$_POST['nombre'] . '"';
$comprovacion = mysqli_query($link,$consultamos);
        } else {
      $error = "<center>Ya existe el material</center>";
      }
  $var=" INSERT INTO catalogo_tratamiento(nombre,observaciones,precio)
  VALUES ('$nombre','$observaciones','$precio')";
 
 mysqli_query($link, $var) or mysqli_error();
 
mysqli_close($link);
}
}
?>


y me marca este error
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /home/u728085672/public_html/Tratamiento/alta_tratamiento.php on line 129
esta es mi linea 129
1
$consultamos = 'SELECT * FROM catalogo_tratamiento WHERE nombre="' .$_POST['nombre'] . '"';
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Porque inserta el registro si ya existe

Publicado por xve (6935 intervenciones) el 31/05/2018 07:17:00
Hola Abigail, el error te lo da en la linea anterior:
1
if(mysqli_num_rows($comprovacion)==0){

Según el error, la variable $comprovacion es nula o no tiene un mysqli_result

De donde viene esa variable?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Porque inserta el registro si ya existe

Publicado por italo (150 intervenciones) el 31/05/2018 12:33:50
prueba en tu ambiente de test.

recuerda que debes de comprobar todo, no solo lo que tu deseas.


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
include("../mod_configuracion/configuracion.php");
//}
 
$consultamos = 'SELECT * FROM catalogo_tratamiento WHERE nombre="' .$_POST['nombre'] . '"';
 
$resultado = mysqli_query($link, $consultamos);
 
  if($resultado) {
 
		$numero_records = mysqli_num_rows($resultado);
 
			if($numero_records >= 1) {
 
				$error_existe_record = "<center>Ya existe el material</center>";
 
			}
 
			else {
 
				$nuevo_record= "INSERT INTO catalogo_tratamiento(nombre,observaciones,precio) VALUES ('$nombre','$observaciones','$precio')";
 
				$insert_nuevo_record = mysqli_query($link, $nuevo_record);
 
				if($insert_nuevo_record) {
 
					echo "OK, nuevo record agregado correctamente.";
 
				}
 
				else {
 
					echo "ha ocurrido un error en el insert del record" .$nuevo_record;
 
				}
 
			}
 
	}
 
	else {
 
		echo "ha ocurrido un error en la primera select. " .$consultamos;
 
	}

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 27
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Porque inserta el registro si ya existe

Publicado por Abigail (14 intervenciones) el 31/05/2018 23:09:32
Muchas gracias !!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar