Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/09/2010, 14:12
Avatar de simplementeronin
simplementeronin
 
Fecha de Ingreso: mayo-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 3
ABM (alta-baja-modificacion) en PHP!!!

Este es una codigo que alguna vez me pasaron unos amigos de la Facultad, modificado para mis fines educacionales!!!

Espero que de algun forma le sirva a la comunidad que tanto me dio hasta el momento!!!:-)

Primero que nada!!!

trabaja con base de datos SQL...

Creando la DB o BD o Base de datos (como mas les guste!!!)

creamos una base de datos con el nombre "Basedatos" o el que quieran. Y una tabla que en mi caso se llama "tabla".

Tambien creamos 2 campos: "id" y "name".

Atributos de los campos!!!

"id", longitud que quieran, tipo entero o "INT" y "autoincremento".
"name", longitud que quieran, tipo "varchar".

<hr>

Ahora bien aqui va el codigo!!!

index.php
Código:
<html>
<head>
   <title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de uso de bases de datos con PHP y MySQL</H1>
<?php
   include("sql.php");
   $link=Conectarse();
		if ($link==0)
		{
			echo "<H1>Error en apertura de bases de datos.</H1>";
			exit();
		}
	
	$result=mysql_query("select * from tabla",$link);
?>
   
   <!-- Escribimos título de las tablas -->
   <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
    <TR>
		<TD><b>&nbsp;ID&nbsp;</b></TD>
		<TD><b>&nbsp;NAME&nbsp;</b></TD>
        </TR>

<?php
   //$row["ID"] NO ES LO MISMO QUE $row["id"] o que $row["Id"]
   while($row = mysql_fetch_array($result)) {
	  echo "<TR>";
	  echo "<TD>&nbsp;" . $row["id"] . "</TD>";
	  echo "<TD>&nbsp;" . $row["name"] . "</TD>";
	  echo "</TR>";
   }
   
   //liberamos memoria que ocupa la consulta...
   mysql_free_result($result);
   
   //cerramos la conexión con el motor de BD
   mysql_close($link);
?>

</table>

	<br>
	<br>
	
	<a href="abm.php?accion=alta">Agregar</a> <br>
	<a href="abm.php?accion=modificacion">Modificar</a> <br>
	<a href="abm.php?accion=baja">Borrar</a> <br>
	
</body>
</html>
abm.php

<!-- Página para fines didácticos, no espere sea óptima -->
Código:
<html>
	<head>
		<!-- de acuerdo al contenido de la variable "accion", escribimos el título -->
		<?php
			if ($_GET["accion"] == "alta")
				echo "<title>" . "Alta de registro" . "</title>";

			if ($_GET["accion"] == "baja")
				echo "<title>" . "Baja en la agenda" . "</title>";

			if ($_GET["accion"] == "modificacion")
				echo "<title>" . "Modificaci&oacute;n en agenda" . "</title>";
		?>
	</head>

	<body>

		<?php
			// Acá mostramos la pantalla de carga de ALTAS.
			if ($_GET["accion"] == "alta")
			{
				echo "<h1>Agregar un registro</h1>";
				echo "<br>";
				echo "<FORM ACTION=\"abm.php\" METHOD=\"GET\">";
					echo "name: " . "<INPUT TYPE=\"TEXT\" NAME=\"txtname\">" . "<BR>";
					echo "<BR>";
					echo "<INPUT TYPE=\"submit\" NAME=\"OK\">";
					echo "<INPUT TYPE=\"hidden\" NAME=\"accion\" VALUE=\"realizar_alta\">";
				echo "</FORM>";

				echo "<br>" . "<a href=\"/\">Volver a la agenda</a>";

				exit();
			}
		?>

		<?php
			// Acá, en base a los datos recibidos (nombre, telefono, direccion, etc), hacemos el alta.
			if ($_GET["accion"] == "realizar_alta")
			{
				include("sql.php");

				$name = $_GET["txtname"];
				alta ($name);

				echo "<br>" . "<a href=\"/\">Volver a la agenda</a>";
			}
		?>

		<?php
			//Acá solicitamos el ID para poder modificar el registro.
			if ($_GET["accion"] == "modificacion")
			{
				echo "<h1>Modificar un registro</h1>";
				echo "<br>";
				echo "<FORM ACTION=\"abm.php\" METHOD=\"GET\">";
					echo "ID: " . "<INPUT TYPE=\"TEXT\" NAME=\"txtId\">" . "<BR>";
					echo "<INPUT TYPE=\"hidden\" NAME=\"accion\" VALUE=\"datos_modificacion\">";
				echo "</FORM>";

				echo "<br>" . "<a href=\"/\">Volver a la agenda</a>";

				exit();
			}
		?>


		<?php
			// Acá, en base al ID recibido, pedimos los datos para MODIFICAR.
			if ($_GET["accion"] == "datos_modificacion")
			{
				include("sql.php");

				//me conecto a la BD y SELECCIONO el registro cuyo ID fue pasado.
				$conexion = Conectarse();

					if (!$conexion)
					{
						echo "<h1>Error al intentar conectar a BD</h1>";
						echo "<br>" . "<a href=\"/\">Volver a la agenda</a>";
						exit();
					}

				$id = $_GET["txtId"];
				$consulta = "SELECT * FROM tabla WHERE id = $id";

				echo $consulta . "<br>";

				$resultado = mysql_query($consulta, $conexion);

				$fila = mysql_fetch_array($resultado);

				if (!$fila)
				{
					echo "<h1>Registro inexistente</h1>";
					echo "<br>" . "<a href=\"/\">Volver a la agenda</a>";
					exit();
				}

				//cargo los datos del registro en variables para que sea más cómodo trabajar.

                $name = $fila["name"];

				   //liberamos memoria que ocupa la consulta...
				   mysql_free_result($resultado);

				   //cerramos la conexión con el motor de BD
				   mysql_close($conexion);

				/*
				ahora que teóricamente tengo los datos del registro que quiero modificar, muestro
				el formulario de carga.
				*/
				echo "<h1>Modificar un registro</h1>";
				echo "<br>";
				echo "<FORM ACTION=\"abm.php\" METHOD=\"GET\">";
				echo "name: " . "<INPUT TYPE=\"TEXT\" NAME=\"txtname\" VALUE=\"$name\">" . "<BR>";

                                echo "<BR>";
				echo "<INPUT TYPE=\"submit\" NAME=\"submit\">";
				echo "<INPUT TYPE=\"hidden\" NAME=\"accion\" VALUE=\"realizar_modificacion\">";
				echo "<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$id\">";
				echo "</FORM>";

				echo "<br>" . "<a href=\"/\">Volver a la agenda</a>";
			}
		?>

		<?php
			// Acá, en base al ID recibido, hacemos la modificación.
			if ($_GET["accion"] == "realizar_modificacion")
			{
				include("sql.php");

                $id = $_GET["id"];
				$name = $_GET["txtname"];

				modificacion($id, $name);
				echo "<br>" . "<a href=\"/\">Volver a la agenda</a>";
			}
		?>

		<?php
			// Acá mostramos la pantalla de carga de BAJAS.
			if ($_GET["accion"] == "baja")
			{
				echo "<h1>Dar de baja un registro</h1>";
				echo "<br>";
				echo "<FORM ACTION=\"abm.php\" METHOD=\"GET\">";
					echo "ID: " . "<INPUT TYPE=\"TEXT\" NAME=\"txtId\">" . "<BR>";
					echo "<INPUT TYPE=\"hidden\" NAME=\"accion\" VALUE=\"realizar_baja\">";
				echo "</FORM>";
				
				echo "<br>" . "<a href=\"/\">Volver a la agenda</a>";
				
				exit();
			}
		?>

		<?php
			// Acá, en base al ID recibido, hacemos la baja.
			if ($_GET["accion"] == "realizar_baja")
			{
				include("sql.php");
				
				$id = $_GET["txtId"];
				
				baja($id);
				
				echo "<br>" . "<a href=\"/\">Volver a la agenda</a>";
			}
		?>

	</body>
</html>
y por ultimo!!! el sql.php en donde ira la coneccion con nuestra DB.
Código:
<?php
	function Conectarse()
	{//inttroducimos los datos de  host que son "Server", "usuario" y "contraseña" 
		if (!($link=mysql_connect("localhost","root","")))//aca hay que introducir los datos que especifique arriba!!!
		{
			return 0;
		}
		if (!mysql_select_db("basedatos",$link))
		{
			return 0;
		}
		return $link;
	}

	//--------------------------

	function alta ($name)
	{
		$conexion = Conectarse();

			if (!$conexion)
			{
				echo "<h1>No se puede dar de alta. Error al conectar.</h1>";
				exit();
			}

		// NO poner comillas simples en nombre de tabla, ni de campos, sólo en valores alfanuméricos.
		$consulta = "INSERT INTO tabla (name) VALUES ('$name')";

		echo $consulta;

		$resultado=mysql_query($consulta,$conexion);

			//cerramos la conexión con el motor de BD
			mysql_close($conexion);
	}

	//--------------------------

	function baja ($id)
	{
		$conexion = Conectarse();

			if (!$conexion)
			{
				echo "<h1>No se puede dar de baja. Error al conectar.</h1>";
				exit();
			}

		// NO poner comillas simples en nombre de tabla, ni de campos, sólo en valores alfanuméricos.
		$consulta = "DELETE FROM tabla WHERE id = $id";

		echo $consulta . "<BR>";

		$resultado=mysql_query($consulta,$conexion);

		//echo "Resultado de la operaci&oacute;n: " . $resultado;

			//cerramos la conexión con el motor de BD
			mysql_close($conexion);

	}

	//--------------------------

	function modificacion ($id, $name)
	{
		$conexion = Conectarse();

			if (!$conexion)
			{
				echo "<h1>No se puede dar de alta. Error al conectar.</h1>";
				exit();
			}

		// NO poner comillas simples en nombre de tabla, ni de campos, sólo en valores alfanuméricos.

		/*
		UPDATE `agenda` SET `nombre` = 'pepe3',
						`tel` = '467641_1',
						`direccion` = 'ch 149_1',
						`mail` = '[email protected]' WHERE `agenda`.`id` =2
		*/

		$consulta = "UPDATE tabla SET name = '$name',";
                $consulta = $consulta . "WHERE id = $id";

		echo $consulta;

		$resultado=mysql_query($consulta,$conexion);

			//cerramos la conexión con el motor de BD
			mysql_close($conexion);
	}

?>
Como ya dije: espero que les sirva y cualquier duda pregunten que para eso estamos o estoy!!!:-):-):-):-):-):-)