0

me surgió la duda de como solucionar este error. Nose si se deba a que este haciendo la consulta mal o por alguna otra razón. ¿Me pueden ayudar a identificarla?.

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given on line 21

line 21:

if (mysqli_num_rows($resultado)>0)

Lo que trato de hacer es una consulta que identifica si hay un registro con la misma información de la columna Código.

<?php
$servidor="localhost:3306";
$usuario="Brayan";
$contraseña="prueba";
$bd="presentacion";
$bd_tabla="tecnosport";
   $conexion = mysqli_connect($servidor, $usuario, $contraseña);

if (!$conexion) {
    die('No se ha podido conectar a la base de datos');
}
//hace el llamado de los campos de la pagina de formulario y le asignamos variables.
$ARTICULO = utf8_decode($_POST['ARTICULO']);
$DESCRIPCIÓN = utf8_decode($_POST['DESCRIPCIÓN']);
$PRECIO = utf8_decode($_POST['PRECIO']);
$CÓDIGO = utf8_decode($_POST['CÓDIGO']);

//Identifica si hay un registro con el mismo codigo, si es asi nos lleva a fail.html.
$resultado=mysqli_query($conexion, "SELECT * FROM ".$bd_tabla." WHERE CÓDIGO = '".$CÓDIGO."'");

if (mysqli_num_rows($resultado)>0)
{

header('Location: Fail.html');
//de lo contrario hara el registro
} else {

    $insert_value = 'INSERT INTO `' . $bd . '`.`'.$bd_tabla.'` (`ARTICULO` , `DESCRIPCIÓN` , `PRECIO`, `CÓDIGO`) VALUES ("' . $ARTICULO . '", "' . $DESCRIPCIÓN . '", "' . $PRECIO . '", "' . $CÓDIGO . '")';

mysqli_select_db($conexion, $bd);
$retry_value = mysqli_query($conexion, $insert_value);

if (!$retry_value) {
   die('Error: ' . mysql_error());
}

header('Location: exito.html');

}

mysql_close($conexion);


?>
KJSK
  • 95
  • 7
  • Hola Ulises, lee sobre [inyección SQL](https://es.stackoverflow.com/q/10518/250) y [cómo evitarla en PHP](https://es.stackoverflow.com/q/18232/250). El código compartido es vulnerable a ese tipo de ataques y no debería usarse en entornos con acceso público. – Alvaro Montoro Mar 06 '18 at 20:43
  • Esta pregunta se puede considerar un duplicado de [ésta](https://es.stackoverflow.com/q/30668/250), o [ésta](https://es.stackoverflow.com/q/128725/250) o [ésta](https://es.stackoverflow.com/q/36266/250). El código puede ser diferente, pero la causa raíz del problema es la misma: hay un fallo en la consulta. Lee [ask] para más información. – Alvaro Montoro Mar 06 '18 at 20:47

0 Answers0