Listado completo de tutoriales

Temario del Tutorial59 - mysqli (POO) - propiedad: affected_rows


La propiedad affected_rows almacena la cantidad de filas afectadas en el último comando SQL.

Por ejemplo si llamamos al comando SQL delete luego podemos consultar a esta propiedad la cantidad de filas eliminadas. Lo mismo es para el funcionamiento de las sentencias: insert, update y select.

Problema

Implementar la baja de un artículo ingresando el código para su búsqueda. Mostrar un mensaje si el código ingresado no existe en la tabla artículos.

Para resolver este problema utilizaremos la propiedad affected_rows para controlar si se borró la fila de la tabla articulos.

El formulario donde ingresamos el código de artículo que queremos borrar es:

<!doctype html>
<html>
<head>
  <title>Borrado de un artículo</title>
</head>
<body>
  <form method="post"  action="pagina2.php">
    Ingrese el código de artículo a borrar:
    <input type="text" name="codigo" size="10" required>
    <br>
    <input type="submit" value="Borrar">
  </form>
</body>
</html>  

La página que elimina el registro en caso que exista el código ingresado (pagina2.php):

<!doctype html>
<html>
<head>
  <title>Borrado de un articulo</title>
</head>  
<body>
  
  <?php
    $mysql=new mysqli("localhost","root","","base1");
    if ($mysql->connect_error)
      die("Problemas con la conexión a la base de datos");
	  
    $mysql->query("delete from articulos where codigo=$_REQUEST[codigo]") or
      die($mysql->error);    
    
    if ($mysql->affected_rows==1)
      echo 'Se elimino el articulo';	  
    else
      echo 'No existe un articulo con dicho código';
	
    $mysql->close();
  ?>  

</body>
</html>

Luego de conectarnos con el MySQL y seleccionar la base de datos procedemos a llamar al método query del clase mysqli:

    $mysql->query("delete from articulos where codigo=$_REQUEST[codigo]") or
      die($mysql->error);    

Seguidamente consultamos a la propiedad affected_rows que almacena la cantidad de registros que fueron afectados con el comando SQL delete, en caso que almacene un 1 significa que se borró el artículo con el código que ingresamos:

    if ($mysql->affected_rows==1)
      echo 'Se elimino el articulo';	  
    else
      echo 'No existe un articulo con dicho código';


Problema resuelto.

Copiar el contenido de este cuadro de texto al NotePad++ y grabarlo en la carpeta c:\wamp\www con un nombre con extensión php (si hay varios cuadros de texto grabar cada uno en un archivo distinto).
luego abrir el navegador (Chrome, FireFox, IExplorer etc.) y en la barra de direcciones tipear: http://localhost/pagina1.php (o el nombre del archivo que le dió)

pagina1.php

Ejecutar ejemplo

pagina2.php

Problema propuesto.

Confeccionar una página que aumente en 10% el precio de los artículos que tienen un precio menor a 5 pesos. Mostrar un mensaje con la cantidad de artículos que fueron modificados sus precios. Utilizar la propiedad affected_rows

Solución
pagina1.php

Ejecutar ejemplo

Retornar