Está en la página 1de 31

Desarrollo de Sitios Web

División de Tecnologías de la Información y Comunicación

Área: Informática Administrativa

Materia: Desarrollo de Sitios Web

Ejemplos de Altas, Bajas y Cambios con PHP y SQL Server

Ing. Mario Jose Martin Ruiz

Ing. Mario Jose Martin Ruiz Pagina 1 de 31


Desarrollo de Sitios Web
En este documento se mostraran algunos ejemplos de implementación de una
aplicación PHP con la base de datos SQL Server, de manera especifica la versión
2000.

Requisitos:
- Tener instalado y funcionando ya sea en el servidor IIS o Apache el
servidor PHP.
- Tener instalado el soporte para SQL Server, si no es así, es momento de
modificar el php.ini para hacer que el soporte funcione.
- Tener instalado el Servidor SQL Server en la maquina local.

Como sé que todo esta bien?

Esta parecería ser una tarea complicada, pero realmente no lo es. Primero,
realizar un archivo de php con la clásica instrucción phpInfo(), la cual, como se ha
visto en clases anteriores devuelve el estado del servidor de PHP, esta pagina, se
guarda en la carpeta donde corren sus paginas ya sea el servidor IIS o el servidor
Apache.

En la siguiente figura puede ver la implementación de una pagina denominada


prueba.php la cual dado que de manera particular en este documento nos
referiremos al caso de tener instalado el IIS lo guardamos dentro de una carpeta
denominada php en la dirección C:\Inetpub\wwwroot\

Ing. Mario Jose Martin Ruiz Pagina 2 de 31


Desarrollo de Sitios Web

Teniendo ese archivo en la ruta referida, probemos la configuración mediante la


URL http://localhost/php/prueba.php en el navegado de nuestro gusto, si
obtenemos la siguiente imagen es que el servicio de php y el soporte para sql
Server son correctos. Nota. El resultado es una pagina muy larga, que debe de
“correrse” hacia abajo con el scroll hasta visualizar la linea MS SQL.

Ing. Mario Jose Martin Ruiz Pagina 3 de 31


Desarrollo de Sitios Web

Para saber que el SQl Server esta corriendo observemos la barra de tareas,
debe de tener SQL Service Manager activado:

Ing. Mario Jose Martin Ruiz Pagina 4 de 31


Desarrollo de Sitios Web
Es momento de crear nuestra base de datos, se debe de llamar php y la tabla
clientes y debe de ser igual a lo que se muestra en la siguiente imagen:

Ing. Mario Jose Martin Ruiz Pagina 5 de 31


Desarrollo de Sitios Web
Ingrese algunos datos (Recuerde que dado que la propiedad Identity esta activa
para el campo clave, este se llena automáticamente, por lo que NO se debe de
intentar escribir en el)

Ing. Mario Jose Martin Ruiz Pagina 6 de 31


Desarrollo de Sitios Web

Ahora bien, con todas estas verificaciones previas y la base de datos


funcionando, procedamos a crear una carpeta (que denominaremos base) dentro
de la carpeta wwwroot. Es ahí donde realizaremos nuestras páginas.
Nota: La carpeta puede llamarse de otra forma, pero es importante tomar en
cuenta que si se decide cambiar de nombre, en cada ocasión en la que este
documento se refiera al nombre “base”, usted deberá escribir el nombre que eligió.

A continuación se dará el código de la primera pagina que denominaremos


ver.php que se guardara precisamente en la carpeta antes creada (base).

Ing. Mario Jose Martin Ruiz Pagina 7 de 31


Desarrollo de Sitios Web
Nota: Es muy importante escribir el código exactamente igual, ya que PHP es
sensible a las mayúsculas/minúsculas.

<html>
<head>
<title>Conexion a BD</title>
</head>
<body>
<?php
$server = "PORTATIL"; //Aqui se define el nombre del servidor
$bd = "php"; //Aqui se define el nombre de la base de datos a utilizar, en nuestro caso se llama php
$conectID = mssql_connect($server,"SA","");
if(!$conectID)
{
echo "Error de conexion con $server";
}
$conectBD= mssql_select_db($bd);
if(!$conectBD)
{
echo "<br>Error de conexion con $bd";
}
$result=mssql_query("SELECT * FROM clientes");
echo "<table width='800' border='1' cellspacing='0' cellpadding='0'>";
echo "<tr bgcolor='#0066CC'>";
echo "<td><div align='center'><font face='Arial Black'>Clave</font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Nombre</font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Apellido Paterno</font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Apellido Materno</font></div></td>";
echo "</tr>";
while ($row=mssql_fetch_array($result)) {
$c1=$row["clave"];
$c2=$row["nombre"];
$c3=$row["apellidop"];

Ing. Mario Jose Martin Ruiz Pagina 8 de 31


Desarrollo de Sitios Web
$c4=$row["apellidom"];
echo "<tr>";
echo "<td>$c1</td>";
echo "<td>$c2</td>";
echo "<td>$c3</td>";
echo "<td>$c4</td>";
echo "</tr>";
}
echo "</table> ";
mssql_close($conectID);
?>
<p><a href="insertar.html">Insertar a Base de Datos</a></p>
<p><a href="borrar.php">Borrar de la Base de Datos</a></p>
<p><a href="actualizar.php">Actualizar de la base de Datos</a></p>
</body>
</html>

Terminado el código, es momento de probarlo. Escribamos en la URL del


navegador la dirección http://localhost/base/ver.php, el resultado si todo es
correcto debe de ser el siguiente. Nota: Los registros varían dependiendo de
aquellos que usted haya ingresado en la base de datos

Ing. Mario Jose Martin Ruiz Pagina 9 de 31


Desarrollo de Sitios Web

Pero, como funciona?, es momento de hablar del código de php

Línea 7
$server = "PORTATIL";

Ing. Mario Jose Martin Ruiz Pagina 10 de 31


Desarrollo de Sitios Web
Es la definición de una variable que almacena el nombre del servidor de SQL Server
al cual nos vamos a conectar y posteriormente nos servirá para hacer la conexión a
la base de datos .

Como sé que nombre poner?

En el SQL Server Service Manager que como recordaras esta en la barra de tareas
se puede ver:

Línea 8
$bd = "php";
Indica a cual base de datos del servidor nos vamos a conectar, en nuestro caso
recordemos que se llama php (Así lo definimos en paginas anteriores).

Ing. Mario Jose Martin Ruiz Pagina 11 de 31


Desarrollo de Sitios Web
Línea 9
$conectID = mssql_connect($server,"SA","");
Linea muy importante!!!!!!!!!!!, aqui nos estamos conectando al servidor, cual
servidor?, pues el que definimos en la variable $server. SA es el nombre de usuario,
y el tercer valor que en nuestro caso es la cadena vacía (“”), es la contraseña de tal
usuario. Si deseas utilizar otro usuario y contraseña es aquí donde lo modificas.

Y la variable $conectID para que sirve?. Guarda un valor booleano, es decir, si se


conecta TRUE, y si no se conecta FALSE. En la línea 10 pregunta precisamente el
resultado de la conexión “if(!$conectID)”, si no se conecta indica el error (Línea 12
echo "Error de conexion con $server";).

Linea 14
$conectBD= mssql_select_db($bd);
Instrucción muy parecida a mssql_connect (la anterior), con la diferencia que ya
contando con la conexión a la Base de Datos, se conecta a una tabla determinada
por la variable $bd.

Igual que $conectID, $conectBD guarda el resultado de la conexión a la tabla, y en


caso de no proceder adecuadamente indica el error.

Linea 19
$result=mssql_query("SELECT * FROM clientes");

Ing. Mario Jose Martin Ruiz Pagina 12 de 31


Desarrollo de Sitios Web
La instrucción mssql_query ejecuta una sentencia SQL, en este caso SELECT *
FROM clientes. La variable $result al igual que en los dos casos anteriores guarda
TRUE o FALSE dependiendo de que si la consulta fue exitosa o no. En este caso, no
se evalúa posteriormente con un IF, tu puedes hacer que si lo evalúe, valdría la
pena que lo hagas.

De la línea 20 a la 26 se utilizan sentencias echo para “dibujar” una tabla. Es la que


se puede observar cuando la página es vista en el navegador.

Linea 27
while ($row=mssql_fetch_array($result))

Esta línea tiene dos funciones:


- Guardar el resultado de la consulta en la variable $row.
- Con la instrucción while dado que la sentencia SELECT debe de regresar
mas de un solo registro, ir mostrando uno por uno hasta terminar con todos
los que la búsqueda devolvió.

De la línea 28 a la 31 se guardan en variables denominadas $c1 hasta $c4 los


campos de los registros de la base de datos. Observa que la instrucción es row
seguido del nombre del campo en la tabla de SQL que se desea almacenar en la
variable.

De la línea 32 a la 37 se muestran mediante instrucciones echo que son


continuación de la tabla definida anteriormente los valores de los registros.

Ing. Mario Jose Martin Ruiz Pagina 13 de 31


Desarrollo de Sitios Web

En la línea 38 termina el ciclo WHILE.

En la línea 39 se cierra la tabla. Observa que las filas de la tabla con estas
instrucciones van a ser variables y dependerán del número de registros que se
devuelva la consulta SQL.

En la línea 40, mssql_close($conectID), se cierra la conexión a la Base de Datos, es


decir, dejamos libre la base de datos desde nuestra aplicación.

Con esto, se ha explicado lo más importante en cuanto a las conexiones, ahora


bien, se procederá a mostrar el resto del código de todo nuestro sitio. Es
importante que notes que cambian pequeñas cosas como las consultas y en
algunos casos se utilizan formas, las cuales, ya se han visto en clase y no debes de
tener problemas en su implementación. Analiza con detenimiento, es momento que
tu disciernas sobre el funcionamiento de las demás paginas, las bases ya están
dadas.

Ing. Mario Jose Martin Ruiz Pagina 14 de 31


Desarrollo de Sitios Web
insertar.html

<html>
<head>
<title>Insertar en la Base de Datos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center">
<p><font size="4" face="Arial, Helvetica, sans-serif">Formulario para Insertar
en la Base de Datos</font></p>
<form action="insertar.php" method="post">
<table width="340" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="122">Nombre</td>
<td width="218"><input type="text" name="nombre"></td>
</tr>
<tr>
<td>Apellido Paterno</td>
<td><input type="text" name="apellidop"></td>
</tr>
<tr>
<td>Apellido Materno</td>
<td><input type="text" name="apellidom"></td>
</tr>
</table>
<p>
<input type="submit" name="Submit" value="Enviar">
<input type="reset" name="Reset" value="Borrar">
</p>
</form>
<p align="left">&nbsp;</p>

Ing. Mario Jose Martin Ruiz Pagina 15 de 31


Desarrollo de Sitios Web
</div>
</body>
</html>

Ing. Mario Jose Martin Ruiz Pagina 16 de 31


Desarrollo de Sitios Web
insertar.php
<html>
<head>
<title>Insertar en Base de Datos</title>
</head>
<body>
<?php
$server = "PORTATIL"; //Aqui se define el nombre del servidor
$bd = "php"; //Aqui se define el nombre de la base de datos a utilizar, en nuestro caso se llama php
$conectID = mssql_connect($server,"SA","");
if(!$conectID)
{
echo "Error de conexion con $server";
}
$conectBD= mssql_select_db($bd);
if(!$conectBD)
{
echo "<br>Error de conexion con $bd";
}
if($_POST[nombre]==''||$_POST[apellidop]==''||$_POST[apellidom]=='')
{
echo "No has llenado todos los datos, algunos han quedado vacios, no se realizo la operacion solicitada";
}
else
{
$query = "INSERT INTO clientes VALUES ('$_POST[nombre]','$_POST[apellidop]','$_POST[apellidom]')";
$result=mssql_query($query);
if($result)
{
echo "El dato se ha insertado correctamente";
}
}
mssql_close($conectID);

Ing. Mario Jose Martin Ruiz Pagina 17 de 31


Desarrollo de Sitios Web
?>
<p><a href="ver.php">Ver todos los registros de la Base de Datos</a></p>
<p><a href="borrar.php">Borrar de la Base de Datos</a></p>
<p><a href="actualizar.html">Actualizar de la base de Datos</a></p>
</body>
</html>

Ing. Mario Jose Martin Ruiz Pagina 18 de 31


Desarrollo de Sitios Web
borrar.php
<html>
<head>
<title>Conexion a BD</title>
</head>
<body>
<?php
$server = "PORTATIL"; //Aqui se define el nombre del servidor
$bd = "php"; //Aqui se define el nombre de la base de datos a utilizar, en nuestro caso se llama php
$conectID = mssql_connect($server,"SA","");
if(!$conectID)
{
echo "Error de conexion con $server";
}
$conectBD= mssql_select_db($bd);
if(!$conectBD)
{
echo "<br>Error de conexion con $bd";
}

//$result=mssql_query("SELECT * FROM Products",$numero );


$result=mssql_query("SELECT * FROM clientes");
//if(mssql_fetch_array($result))
echo '<div align="center"><font color="#000099" size="3" face="Arial, Helvetica, sans-serif"><strong>Elige
el registro a eliminar de la base de datos y presiona el boton Borrar </strong></font></div>';
echo '<form name="form1" method="post" action="ejecutar_borrar.php">';
echo "<table width='800' border='1' cellspacing='0' cellpadding='0'>";
echo "<tr bgcolor='#0066CC'>";
echo "<td><div align='center'><font face='Arial Black'></font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Clave</font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Nombre</font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Apellido Paterno</font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Apellido Materno</font></div></td>";

Ing. Mario Jose Martin Ruiz Pagina 19 de 31


Desarrollo de Sitios Web
echo "</tr>";
while ($row=mssql_fetch_array($result)) {
$c1=$row["clave"];
$c2=$row["nombre"];
$c3=$row["apellidop"];
$c4=$row["apellidom"];
echo '<td><input type="radio" name="botonradio" value="';echo $c1; echo'"></td>';
echo "<td>$c1</td>";
echo "<td>$c2</td>";
echo "<td>$c3</td>";
echo "<td>$c4</td>";
echo "</tr>";
}
echo "</table> ";
echo '<p><input type="submit" name="Submit" value="Borrar Registro"></p>';
echo "</form>";
mssql_close($conectID);
?>
<p><a href="ver.php">Ver Base de Datos</a></p>
<p><a href="insertar.php">Insertar a Base de Datos</a></p>
<p><a href="actualizar.php">Actualizar la Base de Datos</a></p>
</body>
</html>

Ing. Mario Jose Martin Ruiz Pagina 20 de 31


Desarrollo de Sitios Web

Ing. Mario Jose Martin Ruiz Pagina 21 de 31


Desarrollo de Sitios Web
ejecutar_borrar.php
<html>
<head>
<title>Eliminacion de Registro</title>
</head>
<body>
<?php
$server = "PORTATIL"; //Aqui se define el nombre del servidor
$bd = "php"; //Aqui se define el nombre de la base de datos a utilizar, en nuestro caso se llama php
$conectID = mssql_connect($server,"SA","");
if(!$conectID)
{
echo "Error de conexion con $server";
}
$conectBD= mssql_select_db($bd);
if(!$conectBD)
{
echo "<br>Error de conexion con $bd";
}
$clave = $_POST[botonradio];
if($clave=='')
{
echo "No has elegido un dato a eliminar";
}
else
{

$query = "DELETE FROM clientes WHERE clave = '$clave'";


$result=mssql_query($query);
if($result)
{
echo "El registro con clave $clave se ha eliminado permanentemente de la base de datos";
}

Ing. Mario Jose Martin Ruiz Pagina 22 de 31


Desarrollo de Sitios Web
}
mssql_close($conectID);
?>
<p><a href="ver.php">Ver todos los registros de la Base de Datos</a></p>
<p><a href="insertar.html">Insertar de la Base de Datos</a></p>
<p><a href="actualizar.php">Actualizar de la base de Datos</a></p>
</body>
</html>

Ing. Mario Jose Martin Ruiz Pagina 23 de 31


Desarrollo de Sitios Web

Ing. Mario Jose Martin Ruiz Pagina 24 de 31


Desarrollo de Sitios Web
actualizar.php

<html>
<head>
<title>Actualizar BD</title>
</head>
<body>
<?php
$server = "PORTATIL"; //Aqui se define el nombre del servidor
$bd = "php"; //Aqui se define el nombre de la base de datos a utilizar, en nuestro caso se llama php
$conectID = mssql_connect($server,"SA","");
if(!$conectID)
{
echo "Error de conexion con $server";
}
$conectBD= mssql_select_db($bd);
if(!$conectBD)
{
echo "<br>Error de conexion con $bd";
}

if($_GET['valor']==0)
{
$result=mssql_query("SELECT * FROM clientes");
echo '<div align="center"><font color="#000099" size="3" face="Arial, Helvetica, sans-serif"><strong>Elige
el registro a actualizar de la base de datos y presiona el boton Actualizar </strong></font></div>';
echo '<form name="form1" method="post" action="actualizar.php?valor=1">';
echo "<table width='800' border='1' cellspacing='0' cellpadding='0'>";
echo "<tr bgcolor='#0066CC'>";
echo "<td><div align='center'><font face='Arial Black'></font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Clave</font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Nombre</font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Apellido Paterno</font></div></td>";

Ing. Mario Jose Martin Ruiz Pagina 25 de 31


Desarrollo de Sitios Web
echo "<td><div align='center'><font face='Arial Black'>Apellido Materno</font></div></td>";
echo "</tr>";
while ($row=mssql_fetch_array($result)) {
$c1=$row["clave"];
$c2=$row["nombre"];
$c3=$row["apellidop"];
$c4=$row["apellidom"];
echo '<td><input type="radio" name="botonradio" value="';echo $c1; echo'"></td>';
echo "<td>$c1</td>";
echo "<td>$c2</td>";
echo "<td>$c3</td>";
echo "<td>$c4</td>";
echo "</tr>";
}
echo "</table> ";
echo '<p><input type="submit" name="Submit" value="Actualizar Registro"></p>';
echo "</form>";
}
else
{
$clave = $_POST['botonradio'];
$query = "SELECT * FROM clientes WHERE clave ='$clave'";
$result=mssql_query($query);
if(!$result)
{
echo "Error de consulta en la Base de Datos";
}
$row=mssql_fetch_array($result);
$c1=$row["clave"];
$c2=$row["nombre"];
$c3=$row["apellidop"];
$c4=$row["apellidom"];
echo '<div align="center"><font color="#000099" size="3" face="Arial, Helvetica, sans-serif"><strong>Modifica los
elementos en las cajas de

Ing. Mario Jose Martin Ruiz Pagina 26 de 31


Desarrollo de Sitios Web
texto y presiona actualizar</strong></font></div>';
echo '<form name="form2" method="post" action="ejecutar_actualizar.php">';
echo "<table width='800' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr bgcolor='#0066CC'>";
echo "<td><div align='center'><font face='Arial Black'>Clave</div></td>";
echo "<td><div align='center'><font face='Arial Black'>Nombre</div></td>";
echo "<td><div align='center'><font face='Arial Black'>Apellido Paterno</font></div></td>";
echo "<td><div align='center'><font face='Arial Black'>Apellido Materno</font></div></td>";

echo "</tr>";
echo "<tr bgcolor='#0066CC'>";
echo "<td><div align='center'><font face='Arial Black'>$c1</div></td>";
echo "<td><div align='center'><font face='Arial Black'><input type='text' name='nombre' value='$c2'></font></div></td>";
echo "<td><div align='center'><font face='Arial Black'><input type='text' name='apellidop' value='$c3'></font></div></td>";
echo "<td><div align='center'><font face='Arial Black'><input type='text' name='apellidom' value='$c4'></font></div></td>";

echo "</tr>";
echo "</table>";
echo "<input name='clave' type='hidden' value='$c1'>";
echo '<div align= "center"><p><input type="submit" name="Submit" value="Actualizar Registro"></p></div>';
echo "</form>";
}
mssql_close($conectID);
?>
<p><a href="ver.php">Ver Base de Datos</a></p>
<p><a href="insertar.php">Insertar a Base de Datos</a></p>
<p><a href="borrar.php">Borrar de la Base de Datos</a></p>
</body>
</html>

Ing. Mario Jose Martin Ruiz Pagina 27 de 31


Desarrollo de Sitios Web

Y también funciona de la siguiente forma:

Ing. Mario Jose Martin Ruiz Pagina 28 de 31


Desarrollo de Sitios Web

Ing. Mario Jose Martin Ruiz Pagina 29 de 31


Desarrollo de Sitios Web
ejecutar_actualizar.php

<html>
<head>
<title>Actualizacion de Registro</title>
</head>
<body>
<?php
$server = "PORTATIL"; //Aqui se define el nombre del servidor
$bd = "php"; //Aqui se define el nombre de la base de datos a utilizar, en nuestro caso se llama php
$conectID = mssql_connect($server,"SA","");
if(!$conectID)
{
echo "Error de conexion con $server";
}
$conectBD= mssql_select_db($bd);
if(!$conectBD)
{
echo "<br>Error de conexion con $bd";
}
if($_POST[nombre]==''||$_POST[apellidop]==''||$_POST[apellidom]=='')
{
echo "No has llenado todos los datos, algunos han quedado vacios, no se realizo la operacion solicitada";
}
else
{
$clave = $_POST[clave];
$query = "UPDATE clientes SET nombre='$_POST[nombre]',apellidop='$_POST[apellidop]',apellidom='$_POST[apellidom]'
WHERE clave='$clave'";
$result=mssql_query($query);
if($result)
{
echo "El registro con clave $clave se ha actualizado con el registro $_POST[nombre] $_POST[apellidop] $_POST[apellidom]";

Ing. Mario Jose Martin Ruiz Pagina 30 de 31


Desarrollo de Sitios Web
}
else
{
echo "El registro no se actualizo, revisa tu informacion";
}
}
mssql_close($conectID);
?>
<p><a href="ver.php">Ver todos los registros de la Base de Datos</a></p>
<p><a href="borrar.php">Borrar de la Base de Datos</a></p>
<p><a href="insertar.html">Insertar en la base de Datos</a></p>
</body>
</html>

Ing. Mario Jose Martin Ruiz Pagina 31 de 31

También podría gustarte