Entradas

Mostrando entradas de noviembre, 2007

ORACLE. autoincrement.

Muchos son los casos en los que tenemos que hacer un insert y el campo id no puede repetirse. En MySQL tenemos el autoincrement pero en oracle necesitamos saber el máximo del campo id de la tabla y añadirle uno. Por suerte podemos incluir sentencias select dentro de un insert. Veamos el ejemplo: CREATE TABLE CLIENTES ( ID_CLIENTE NUMBER(11) NOT NULL, NOMBRE VARCHAR(240 Byte), constraint PK_ID_CLIENTE primary key (ID_CLIENTE) ); /* inicializamos la tabla */ INSERT INTO CLIENTES ( ID_CLIENTE, NOMBRE ) VALUES ( 1 ,'CLIENTE 1') /* el resto de los insert con la select dentro del insert */ INSERT INTO CLIENTES ( ID_CLIENTE, NOMBRE ) VALUES ( (SELECT MAX(ID_CLIENTE)+1 FROM CLIENTES) ,'CLIENTE DE PRUEBA') --- Supongo que habrá otras técnicas de simular el autoincrement de MySQL. Esta forma funciona pero seguro que hay otras muchas más.

AJAX. metodo get y post

Continuando con AJAX, estas funciones nos permiten trabajar con AJAX tanto por el método GET como por el POST. function Ajax() { var XMLHttp = false; if (window.XMLHttpRequest) { // Si es Mozilla, Safari etc XMLHttp = new XMLHttpRequest (); } else { if (window.ActiveXObject) { // pero si es IE try { XMLHttp = new ActiveXObject ("Msxml2.XMLHTTP"); } catch (e) { // en caso que sea una versión antigua try { XMLHttp = new ActiveXObject ("Microsoft.XMLHTTP"); } catch (e) { return false; } } } else { return false; } } return XMLHttp; } function cargarContenidoAjaxPOST(url, post, contenedor) { ajax = Ajax(); if (ajax==false) { alert("Exception AJAX"); return; } ajax.open("POST",url,true); ajax.onreadystatechange=function() { if (ajax.readyState == 4 && (ajax.status == 200 || window.location.href.indexOf ("http") == - 1)) { contenedor.innerHTML = ajax.respo

AJAX. ejemplo POST

Este codigo es la recopilación de varios mini-manuales encontrados por internet. Este ejemplo es para enviar los parametros por el método POST. /* ajax.js */ function Ajax() { var XMLHttp = false; if (window.XMLHttpRequest) { // Si es Mozilla, Safari etc XMLHttp = new XMLHttpRequest (); } else { if (window.ActiveXObject) { // pero si es IE try { XMLHttp = new ActiveXObject ("Msxml2.XMLHTTP"); } catch (e) { // en caso que sea una versión antigua try { XMLHttp = new ActiveXObject ("Microsoft.XMLHTTP"); } catch (e) { return false; } } } else { return false; } } return XMLHttp; } function cargarContenidoAjaxPOST(url, post, contenedor) { ajax = Ajax(); if (ajax==false) { alert("Exception AJAX"); return; } ajax.open("POST",url,true); ajax.onreadystatechange=function() { if (ajax.readyState == 4 && (ajax.status == 200 || window.location.href.indexOf ("http")

PHP. autentificación HTTP.

Esta es una forma sencilla de autentificación con PHP. Solo funciona si php es modulo de apache, como cgi no funciona. Yo prefiero loguear a los usuarios mediante su login y controlar la session. Pero muchas veces hay prisas o simplemente para una sola pantalla restringida para que te vas a montar una gestión de usuarios. if ($_SERVER['PHP_AUTH_USER']!="user" && $_SERVER['PHP_AUTH_PW']!="pass") {   header('WWW-Authenticate: Basic realm="My Realm"');   header('HTTP/1.0 401 Unauthorized');   //echo 'Text to send if user hits Cancel button';   echo 'HTTP/1.0 401 Unauthorized';   exit; } else {   echo " Hola {$_SERVER['PHP_AUTH_USER']}. ";   //echo " You entered {$_SERVER['PHP_AUTH_PW']} as your password. "; } ?> Este ejemplo lo he recogido de http://es2.php.net/manual/es/features.http-auth.php Visitarlo para más información.

HTML. div en lugar de table II

La distribución del contenido html es posible sin el uso de tablas. En el ejemplo podemos distribuir el contenido típico de cabecera, menu a la derecha y contenido a la izquierda. Con el uso de los estilos float: left; float: right; clear: left; clear: both; Podemos distribuir el contenido de nuestra web sin necesidad de tablas. Echar un vistazo al ejemplo más completo en HTML organizar el contenido con divs También ejemplos visuales de divs con distintos css en la propiedad de display Y cómo no la w3c con su guía de referencia rápida de css y xhtml: Guía de Referencia CSS 2.1 Guía de Referencia XHTML <div id="cabecera" style="border: 1px solid blue;"> cabecera </div> <div id="cabecera2" style="border: 1px solid blue; clear: both;"> cabecera2 </div> <div id="menu" style="float: left; border: 1px solid blue; width: 200px;"> <div>menu 1</div> <div>menu 2</div> &

HTML. div en lugar de table

Podemos organizar el contenido html en lugar de con table con div. Es muy útil ya que nos enseña a manejar el contenido como recomienda la w3c. Muchas páginas se nos muestran ya sin usar ni una sola tabla, visita www.php.net y verás como no hay un solo tag table, ni tr, ni td Este apunte lo recogí de www.anieto2k.com Solución inline-block //CSS .table { } .table .row { } .table .row .cell { display: inline-block; } //HTML <div class=”table”> <div class=”row header”> <span class=”cell” style=’width:50px;’>Header Column 1</span> <span class=”cell” style=’width:50px;’>Header Column 2</span> </div> <div class=”row body”> <span class=”cell” style=’width:50px;’>Body Column 1</span> <span class=”cell” style=’width:50px;’>Body Column 2</span> </div> </div> Esta solución, funcionará en la mayoría de navegadores, aunque rompe la regulación de la W3C y

HTML. Mostrar código html dentro de una página html

Para mostrar directamente el código html dentro de una web deberemos remplazar los caracteres que abren y cierran cada tag. Sustituimos cada caracter < por &lt; y cada caracter > por &gt; ejemplo: <div>Hola mundo!</div> &lt;div&gt;Hola mundo!&lt;/div&gt;

AJAX. ejemplo básico.

Mediante AJAX podemos recargar solo una parte del contenido de un documento html. Este ejemplo es una versión minimamente modificada de un código que me encontré en internet. Siento no hacer referencia a ese sitio pero no me acuerdo de la url. /* codigo javascript */ // Documento JavaScript // llamamos a que se recarge el contenido del div con ese id_contenedor // mediante la llamada a la url function mostrarNuevoContenido(url, id_contenedor) { var Ajax = new AJAX(url, id_contenedor); } // todo es correcto y ha llegado el momento de poner la información requerida // en su sitio en la pagina xhtml function cargarpagina (pagina_requerida, id_contenedor) { if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1)) document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText; } function AJAX(url, id_contenedor) {

ORACLE. paginación con oracle. LIMIT en oracle.

Se trata de anidar las consultas. Introducimos nuestra consulta $sql dentro de otras dos consultas que controlan las filas obtenidas en la consulta. $sql_paginada=" SELECT * FROM ( SELECT ROWNUM AS FILA, CONSULTA.* FROM ( $sql ) CONSULTA ) WHERE FILA > $Desde AND FILA <= $Hasta ";