PHP - colocar un mensaje al no encontrar registro en la base de datos

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

colocar un mensaje al no encontrar registro en la base de datos

Publicado por salvatore (5 intervenciones) el 06/05/2020 23:44:08
Hola Buenas, soy nuevo en esto de la programación, y recién estoy empezando con php y tengo el siguiente problema , yo realice una pagina de búsqueda todo funciona correctamente pero me gustaría saber como colocar un mensaje al no encontrar ningún registro en la base de datos, cualquier aporte me ayudaría mucho gracias.

este es el código:
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
<?php
 
$pais=$_GET["buscar"];
require("49_1SalvConexDBPaginadebusquedaInyeccionSQLI.php");
 
 
$conexionPOP=mysqli_connect($db_host,$db_usuario,$db_contra,$db_nombre);
 
$mensaje="no conecta";
if (!$conexionPOP) {
    die('Error de Conexión: ' . mysqli_connect_errno());
}
 
 
 
	mysqli_select_db($conexionPOP,$db_nombre) or die ("No se encuentra la DB");
	mysqli_set_charset($conexionPOP, "utf8");
 
 
 
	$sql =  "SELECT CÓDIGOARTICULO, SECCIÓN, NOMBREARTÍCULO, PRECIO, FECHA, IMPORTADO, PAÍSDEORIGEN FROM productosvid47sql WHERE PAÍSDEORIGEN = ?";
 
 
 
$resultadostmt=mysqli_prepare($conexionPOP,$sql);
 
 
$oksiono=mysqli_stmt_bind_param($resultadostmt,"s",$pais);
 
 
$oksiono=mysqli_stmt_execute($resultadostmt);
 
 
 
/*5.1 verificamos con un "if else" si la consulta se ha realizado o no preguntando en que situacion se encuentra "$okasiono"*/
 if ($oksiono==false) {
	echo "No se encontro la consulta";
 
}
else{
 
$oksiono=mysqli_stmt_bind_result($resultadostmt, $codigo,$seccion,$nombre,$precio,$fecha,$validaimportar,$pais);
 
while ($tempo2=mysqli_stmt_fetch($resultadostmt)){
 
	echo $codigo . " " . $seccion . " " . $nombre . " " . $precio . " " . $fecha . " " . $validaimportar . " " . $pais ."<br>"  ;
 
  }
 
mysqli_stmt_close($resultadostmt);
 
}
?>

codigo del formulario de busqueda:

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
<html>
<head>
<meta charset="utf-8">
	<title>Formulario de Búsqueda</title>
 
 
 
</script>
</head>
<body>
 
<form action="" method="get">
 
<label>Buscar: <input id="bus" type="text" name="buscar"></label>
 
<input type="submit" name="enviando" value="¡Dale!" >
 
</form>
<?php
	require("49_1SalvConexDBPaginadebusquedaInyeccionSQLI.php");
	$pais=$_GET["buscar"];
 
	include("49_2SalvPaginadebusquedaInyeccionSqlI.php");
 
?>
 
</body>
</html>
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

colocar un mensaje al no encontrar registro en la base de datos

Publicado por Julio (830 intervenciones) el 07/05/2020 08:46:12
Hola.

Puedes comprobar el número de filas que te devuelve la consulta a la base de datos con mysqli_num_rows. Haz la comprobación y, si te devuelve cero filas, entonces muestra el mensaje de que no hay.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

colocar un mensaje al no encontrar registro en la base de datos

Publicado por salvatore (5 intervenciones) el 07/05/2020 21:44:51
hola muchas gracias por tu tiempo para responder pero en que parte exactamente debo colocarlo, o como debe colocar la funcion que me dijiste
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

colocar un mensaje al no encontrar registro en la base de datos

Publicado por Julio (830 intervenciones) el 08/05/2020 00:12:05
Pues debes hacer la comprobación justo cuando hayas hecho la consulta a la base de datos y tengas sus resultados.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

colocar un mensaje al no encontrar registro en la base de datos

Publicado por salvatore (5 intervenciones) el 08/05/2020 23:30:16
Hola muchas gracias por la ayuda ya coloque el mensaje donde dijiste y me sale este error
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, string given in C:\xampp\htdocs\49_2SalvPaginadebusquedaInyeccionSqlI.php on line 53

este es el código:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
	<title>Documento sin título</title>
</head>
<body>
 
 
<style>
 
	table{
		width: 50%;
		border: 1px dotted #FD0101;
		margin: auto;
	}
</style>
 
<?php
 
 
 
 
$pais=$_GET["buscar"];
require("49_1SalvConexDBPaginadebusquedaInyeccionSQLI.php");
 
 
$conexionPOP=mysqli_connect($db_host,$db_usuario,$db_contra,$db_nombre);
 
$mensaje="no conecta";
if (!$conexionPOP) {
    die('Error de Conexión: ' . mysqli_connect_errno());
}
 
	mysqli_select_db($conexionPOP,$db_nombre) or die ("No se encuentra la DB");
	mysqli_set_charset($conexionPOP, "utf8");
 
	$sql =  "SELECT CÓDIGOARTICULO, SECCIÓN, NOMBREARTÍCULO, PRECIO, FECHA, IMPORTADO, PAÍSDEORIGEN FROM productosvid47sql WHERE PAÍSDEORIGEN = ?";
 
 
$resultadostmt=mysqli_prepare($conexionPOP,$sql);
 
 
$oksiono=mysqli_stmt_bind_param($resultadostmt,"s",$pais);
 
 
$oksiono=mysqli_stmt_execute($resultadostmt);
 
$numero = mysqli_num_rows($sql); // linea 53
if ($sql>0) {
	echo "si hay articulos";
}else{
	echo "no hay articulos";
}
 
 
 if ($oksiono==false) {
	echo "No se encontro la consulta";
 
}
else{
 
$oksiono=mysqli_stmt_bind_result($resultadostmt, $codigo,$seccion,$nombre,$precio,$fecha,$validaimportar,$pais);
 
while ($tempo2=mysqli_stmt_fetch($resultadostmt)){
 
	echo $codigo . " " . $seccion . " " . $nombre . " " . $precio . " " . $fecha . " " . $validaimportar . " " . $pais ."<br>"  ;
 
}
 
mysqli_stmt_close($resultadostmt);
 
 
}
 
 
?>
 
</body>
</html>
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 Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

colocar un mensaje al no encontrar registro en la base de datos

Publicado por Julio (830 intervenciones) el 09/05/2020 03:08:21
No, debes hacerlo sobre los resultados (los has llamado $oksiono) y después la siguiente comparación que haces será sobre el número de filas, no sobre la consulta $sql.

Piénsalo con lógica. Primero creas una consulta SQL, la ejecutas y obtienes unos resultados. Obtienes el número de filas de esos resultados y, si el número de filas es mayor que 0, entonces hay.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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: 10
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

colocar un mensaje al no encontrar registro en la base de datos

Publicado por salvatore (5 intervenciones) el 10/05/2020 21:08:01
Hola ya hice como me dijiste y me sigue saliendo este error:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\49_2SalvPaginadebusquedaInyeccionSqlI.php on line 57

este es el codigo:

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
	<title>Documento sin título</title>
</head>
<body>
 
 
<style>
 
	table{
		width: 50%;
		border: 1px dotted #FD0101;
		margin: auto;
	}
</style>
 
<?php
 
 
if (isset($_GET['buscar'])) {
$pais = $_GET['buscar'];
} else {
$pais = "";
}
 
 
require("49_1SalvConexDBPaginadebusquedaInyeccionSQLI.php");
 
 
$conexionPOP=mysqli_connect($db_host,$db_usuario,$db_contra,$db_nombre);
 
$mensaje="no conecta";
if (!$conexionPOP) {
    die('Error de Conexión: ' . mysqli_connect_errno());
}
 
 
 
	mysqli_select_db($conexionPOP,$db_nombre) or die ("No se encuentra la DB");
	mysqli_set_charset($conexionPOP, "utf8");
 
 
 
	$sql =  "SELECT  CÓDIGOARTICULO, SECCIÓN, NOMBREARTÍCULO, PRECIO, FECHA, IMPORTADO, PAÍSDEORIGEN FROM productosvid47sql WHERE PAÍSDEORIGEN = ?";
 
 
$resultadostmt=mysqli_prepare($conexionPOP,$sql);
 
 
$oksiono=mysqli_stmt_bind_param($resultadostmt,"s",$pais);
 
 
$oksiono=mysqli_stmt_execute($resultadostmt);
 
$registro = mysqli_num_rows($oksiono);
 
if ($registro > 0) {
	echo "si hay articulos";
}else{
	echo "no hay articulos";
}
 
/*5.1 verificamos con un "if else" si la consulta se ha realizado o no preguntando en que situacion se encuentra "$okasiono"*/
 if ($oksiono==false) {
	echo "No se encontro la consulta";
 
}
else{
 
$oksiono=mysqli_stmt_bind_result($resultadostmt, $codigo,$seccion,$nombre,$precio,$fecha,$validaimportar,$pais);
 
while ($tempo2=mysqli_stmt_fetch($resultadostmt)){
 
	echo $codigo . " " . $seccion . " " . $nombre . " " . $precio . " " . $fecha . " " . $validaimportar . " " . $pais ."<br>"  ;
 
  }
 
mysqli_stmt_close($resultadostmt);
 
 
}
 
?>
 
</body>
</html>
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: 10
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

colocar un mensaje al no encontrar registro en la base de datos

Publicado por salvatore (5 intervenciones) el 14/05/2020 02:38:38
Ya lo logré resolver muchas gracias por tus consejos y tú tiempo
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