Professional Documents
Culture Documents
o la direccin donde se encuentra el archivo PHP ej: Provincias/guardarProv.php y los parmetros q vas a guardar en un array lo q sea Ejem: Array(Chimborazo,Region Sierra); entonces estos parmetros son enviados con esta funcin y en el archivo PHP al q llama debe aber un echo 1 o 0 por ejemplo indicando si el proceso fue correcto o NO esa respuesta se captura y segn eso se imprime un resultado al usuario final y ya esta pelado el pollo
function GuardarAsincronamente(url, parametros) { var opciones = { //Forma en la que viajan los datos puede ser tambien GET pero no aconsejable porq los datos viajan por el URL casi simpre debe ser POST para q los datos viajen en la cabecera de la peticion method: 'POST' //los parametros que viajan y ate dije los datos q necesitas guarder o consultar o lo tu necesites enviar al servidor para q el te de una respuesta. ,parameters: parametros // el format de la cabecera que viaja al servidor ,contentType:'application/x-www-form-urlencoded' //el formato en el cual se va a convertir los datos para ser enviados al servidor ,encoding:'UTF-8' //Funcion que se ejecuta si no hubo problema con la respuesta q el servidor emite ,onSuccess: function(t) {if (t==1) alert(Almacenamiento correcto) else alert(Hubo un problema y no se almaceno el registro)} //funcin q se ejecuta SI el URL que se senvio no existe ,on404: function(t) { alert('Error 404: Pagina no encontrada');} //function q se ejecuta si hubo algun problema desconocido con la respuesta del servidor.
,onFailure: function(t) { alert('Error ' + t.status + ' -- ' + t.statusText);} } var peticion = new Ajax.Request(url, opciones); }
Aqui un ejemplo de connexion Utiliza clases trata de ver porq hago cada paso aqui no te voy a comentar nada por q esto si lo conoces y quiero que me expliques tu cuando llegues Trata de entender porq llamo a tal funcin?? Y Q pasa si no la llamo?? TIPOS DE CONEXION /////////////////////////////////////////////////ESTA es directa /////////////////////////////////////////////////////////////// $conectID = mssql_connect('sqlserver2005.educacion.gov.ec\SQL0503','AdmTRANS2','123jkl'); if (!$conectID) echo 'error de conexion'; mssql_select_db("BD_TRANSACCIONAL",$conectID); $result=mssql_query("select * from HCL_evolucion"); //mssql_fetch_row($result) while ($row=mssql_fetch_array($result)) { $counter++; $c1=$row["EVO_codigo"]; $c2=$row["EVO_motivoCon"]; echo ("$counter Cod1: $c1 Cod2: $c2 \n"); } ////////////////////////////////////////////////ESTA es con ODBC Fijate lo que cambia///////////////////////////////////////////////////////////////7 <?php $conectID = odbc_connect("BD_TRANS","AdmTRANS2","123jkl"); $result=odbc_exec($conectID,"select * from HCL_evolucion"); while(odbc_fetch_row($result)) { $counter++; $c1=$row["EVO_codigo"]; $c2=$row["EVO_motivoCon"];
echo ("$counter Cod1: $c1 Cod2: $c2\n"); } odbc_close($conectID); ?> ////////////////////////////////////////////////////Aqu ya esta en clases hay un archivo para conexin y el otro q solamente lo consume/////////////////////////////////////////////////////////////////7 CLASES CONEXIN //ARCHIVO conexion.php es el archivo q devuelve la conexion <?php class clsConexion { public function fnConexion() { $conectID = mssql_connect('sqlserver2005.educacion.gov.ec\SQL0503', 'AdmTRANS2', '123jkl'); if (!$conectID) echo 'error de conexion'; mssql_select_db("BD_TRANSACCIONAL", $conectID); return $conectID; } } ?> ///////////////////////////////////////////////Aqu es muy importante q veas como referencio al otro archivo y como ocupo la conexin //////////////////////////////////////////////////////////////7 Como concadenas en PHP?? //ARCHIVO pagina.php es el archivo q consume la conexin <?php require_once("conexion.php"); $sql = "select * from HCL_evolucion"; $objConexion = new clsConexion(); $objConexion->fnConexion(); $query = "select EVO_codigo from HCL_evolucion"; $result = mssql_query($query); while ($row = mssql_fetch_array($result)) { echo ($row["EVO_codigo"]. \n"); } unset($objConexion); es muy importante esta lnea X q???? ?>
INTRODUCCIN.
Este es un breve manual dnde intentar explicar como usar ODBC en PHP, intentar no divagar demasiado e ir directamente a los casos prcticos. Espero que os sea de ayuda. En este manual al referirme a ODBC, me refiero a las instrucciones con que PHP permite manejar un DSN de sistema que acceda a una base de datos de cualquier tipo, se da por supuesto que este DSN de sistema est correctamente configurado, apuntando a la base de datos deseada y con el controlador correcto para esta BD. Las instrucciones ODBC que se pueden utilizar con PHP, son muchas y muy sencillas, permitindonos de esta manera hacer todas las operaciones bsicas necesarias para manejar una BD.
Para conectarnos a una base de datos, en general, necesitaremos la siguiente informacin: Equipo que alberga la base de datos Usuario de la base de datos Clave de la base de datos Nombre de la base de datos Puerto de la conexin
Como resultado de estos datos debemos obtener un identificador de conexin que se utilizar posteriormente para realizar las distintas operaciones sobre la BD. Ahora veremos como se lleva a cabo la operacin de conexin con la BD. (Los parmetros entre corchetes son opcionales) $conexion = odbc_connect($dsn, $usuario, $clave[,int tipo_cursor]); $conexion: Variable que utilizaremos para hacer referencia a la conexin establecida. $dsn: Variable que contendr el nombre del DSN. Tambin podemos utilizar directamente el nombre asignado a nuestro DSN entre comillas dobles. Ej: GESTION $usuario y $clave: Cmo sus nombres indican contendrn el nombre del usuario de la BD y la clave de la BD de dicho usuario. Tambin es posible utilizar estos directamente encerrados entre comillas dobles. Ej: $conexion = odbc_connect("GESTION","usuario","clave") or die ("No se pudo conectar con Gestin"); Una conexin persistente con ODBC se realizara con: $conexion = odbc_pconnect($dsn, $usuario, $clave[,int tipo_cursor]); Con ODBC, al contrario que ocurre con MySQL, no es necesaria una segunda instruccin para elegir la BD con la que vamos a trabajar ya que con el DSN, esta queda perfectamente identificada.
obtenemos un descriptor de los resultados de la consulta. Un ejemplo ms detallado de como utilizar odbc_exec, con todos los pasos a seguir sera: //En esta lnea construimos la consulta SQL $sqlcodfamilia = "select CODFAMILIA FROM FAMILIA WHERE DESCRIPCIO = '$familia' "; //Realizamos la consulta $rescodfamilia = odbc_exec($conexion, $sqlcodfamilia) or die ("no se ha podido realizar la consulta"); //Obtenemos el dato del campo deseado de la BD $codfamilia = odbc_result($rescodfamilia, "CODFAMILIA"); //Liberamos el espacio de memoria ocupado odbc_free_result($rescodfamilia); Todas ests instrucciones las veremos en profundidad a lo largo de este manual.
//Este bucle recorre la consulta fila a fila, comprueba la condicin e introduce los //resultados de la consulta en un desplegable. Como podemos observar si la consulta no tiene //resultados nunca entrara en el bucle.
while(odbc_fetch_row($restipo)) { $tipo=odbc_result($restipo, "TIPODOC"); if($tipodoc==$tipo) { echo "<option selected>$tipo</option>"; } else { echo "<option>$tipo</option>"; } } echo "</select>; //Liberamos el espacio de memoria ocupado por la consulta odbc_free_result ($restipo);
odbc_result($res, $campo); $campo, deber contener el nombre del campo de la consulta cuyo valor se desea obtener. Se puede utilizar directamente el nombre del campo, encerrado entre comillas dobles. Para liberar el espacio de memoria ocupado por una consulta utilizaremos: odbc_free_result($res); Para cerrar la conexin con una base de datos utilizaremos: odbc_close($conexion); Es muy importante distinguir entre el descriptor de la consulta y el descriptor de la conexin, ya que son cosas totalmente distintas. Nos evitaremos muchos problemas si ponemos nombres significativos a nuestras variables.
Ejemplos prcticos
Insertar un registro en la Base de Datos.
<? //Establece una conexin con la BD y lanza un mensaje de error en el caso de que esta no se haya realizado con xito $conexion = ODBC_CONNECT("GESTION","USUARIO","jr4582") or die ("No se pudo conectar con Gestin"); //Inserta un registro en nuestra BD, en los campos indicados, con los valores que contengan las variables indicadas en la clusula VALUES $sqlinsert ="INSERT INTO DOCUMENTOSFICHA (INDICE, DESCRIPCION, USUARIOALTA, FECHAALTA, USUARIOMOD, FECHAMOD, REF, AMPDESCRI, EMPRESA, RUTAACCESO, TIPODOC) VALUES ($indice, '$descripcion', '$cusuario', DATE(), '$cusuario', DATE(), '$referencia', '$observaciones', '$cempresa', '$ficherogz', '$tipo')"; odbc_exec($conexion, $sqlinsert); //Cierra la conexin con la BD y despus de esto nos lleva a la pgina indicada en la instruccin header();
//Despus de ejecutar la instruccin volvemos a una pgina determina por el desarrollador header("Location:principal.php"); ?>
Conclusiones Finales
Casi siempre podremos utilizar ODBC, para comunicarnos con una Base de Datos de cualquier tipo, as que estas instrucciones, se puede decir, que son las ms genricas para la interaccin con una BD y por lo tanto nos permiten obviar el tipo de la Base de Datos, con la que estemos trabajando, as como sus particularidades, lo cual en algunos momentos, sin duda, es una gran ventaja, y quiz nuestra mejor opcin. Para intentar sacar el mximo partido a este breve manual, es recomendable que si an no tenemos suficientes conocimientos de SQL busquemos un buen manual de SQL, que al fin y al cabo es el lenguaje que nos permitir comunicarnos con la BD. Este manual es un primer acercamiento al manejo de BD mediante ODBC, y aunque como siempre la mejor manera de aprender es practicando, quiz estos pequeos ejemplos os ahorren mucho tiempo y trabajo, al menos esa es la intencin. Perdonad los posibles errores.