Foro oficial de PHP

Hola chica mala :p

FPDF en mi concepto es demasiado complicada para la generación de un PDF, la que uso actualmente y me parece que es una gran alternativa dado que es la que usa Joomla es TCPDF, es muy fácil de usar, interpreta HTML y admite estilos, protección de los PDF's, etc. Ahh y lo mejor, es OpenSource y la actualizan constantemente :D

Creo que investigaré sobre TCPDF.

Tengo otra consulta:

Tengo en una base de datos mysql, una tabla de articulos y en ella tengo el campo código que es único.
Pero en el formulario se podría ingresar nuevamente el mismo registro. Cómo valido que el registro ya existe? o no? para no duplicarlo?
Mi pregunta va hacia qué procedimiento es más recomendable para optimizar la busqueda y no saturar el sistema?
Gracias.
 
(...)Tengo en una base de datos mysql, una tabla de articulos y en ella tengo el campo código que es único.
Pero en el formulario se podría ingresar nuevamente el mismo registro. Cómo valido que el registro ya existe? o no? para no duplicarlo?
Mi pregunta va hacia qué procedimiento es más recomendable para optimizar la busqueda y no saturar el sistema?
Gracias.

Para poder validar algo indudablemente hay que consultar en la DB ¿no? piensas validarlo en el momento que lo escriban? oseas con ajax? porque una opción podría ser esa, cuando lo escribas y cambies el foco de esa caja de texto, entonces podrías hacer la validación tipo ajax

Sino entonces se hace la validación antigua, llenas todo y cuando mandes al server ps intentas grabar todo que estoy seguro que cuando la operación rebote negativamente con las funciones de php para ejecutar ese query entonces te darás cuenta y tomaras tus acciones debias, sino ps todo se graba y listo.

Eso teniendo en cuenta que el campo lo tienes designado como UNICO directamente en la tabla ¿me comprendes?

En codigo de MySQL me refiero a esto

Código:
/* Build Table Structure */
CREATE TABLE productos
(
  id INTEGER UNSIGNED NOT NULL,
  codigo INTEGER UNSIGNED NOT NULL UNIQUE,
  nombre VARCHAR(80) NOT NULL
);

/* Table Items: productos */
ALTER TABLE productos ADD CONSTRAINT pkproductos
  PRIMARY KEY (id);

Espero te sirva lo que te digo, recuerda, lo que quieres hacer la clave está en que ese campo llamado "codigo" quede como UNIQUE, con eso garantizas que no se dupliquen los códigos en tu campo y así la validación la haces en la DB cada vez que intenten gravar algo ahí respondiendo falso o positivo según sea el caso con las funciones de ejecución de querys en php.
 
Para poder validar algo indudablemente hay que consultar en la DB ¿no? piensas validarlo en el momento que lo escriban? oseas con ajax? porque una opción podría ser esa, cuando lo escribas y cambies el foco de esa caja de texto, entonces podrías hacer la validación tipo ajax

Sino entonces se hace la validación antigua, llenas todo y cuando mandes al server ps intentas grabar todo que estoy seguro que cuando la operación rebote negativamente con las funciones de php para ejecutar ese query entonces te darás cuenta y tomaras tus acciones debias, sino ps todo se graba y listo.

Eso teniendo en cuenta que el campo lo tienes designado como UNICO directamente en la tabla ¿me comprendes?

En codigo de MySQL me refiero a esto

Código:
/* Build Table Structure */
CREATE TABLE productos
(
  id INTEGER UNSIGNED NOT NULL,
  codigo INTEGER UNSIGNED NOT NULL UNIQUE,
  nombre VARCHAR(80) NOT NULL
);
 
/* Table Items: productos */
ALTER TABLE productos ADD CONSTRAINT pkproductos
  PRIMARY KEY (id);

Espero te sirva lo que te digo, recuerda, lo que quieres hacer la clave está en que ese campo llamado "codigo" quede como UNIQUE, con eso garantizas que no se dupliquen los códigos en tu campo y así la validación la haces en la DB cada vez que intenten gravar algo ahí respondiendo falso o positivo según sea el caso con las funciones de ejecución de querys en php.

Lo de ajax me parece interesante pero no domino el tema(http://www.laneros.com/showpost.php?p=3883245&postcount=1) Recién estoy tratando de comprenderlo. :\

Pero por el momento podría hacer esa verificación solamente con php, pero para no llenar todo el formulario podría solamente ingresar el código, buscarlo y si existe enviar una pantalla y sino existe pedir que se llene el formulario. Y ya entendí eso del campo unico.
 
Lo de ajax me parece interesante pero no domino el tema(http://www.laneros.com/showpost.php?p=3883245&postcount=1) Recién estoy tratando de comprenderlo. :\

Pero por el momento podría hacer esa verificación solamente con php, pero para no llenar todo el formulario podría solamente ingresar el código, buscarlo y si existe enviar una pantalla y sino existe pedir que se llene el formulario. Y ya entendí eso del campo unico.

un poco de offtopic
AJAX es tremendamente fácil cuando sabes manipular JavaScript y sino también es fácil. Te recomiendo este link donde explican como utilizar AJAX con las librerias de jQuery

http://www.cristalab.com/tutoriales/ajax-en-jquery-c226l/

Salu2 y espero que te sea útil
 
ok, empezaré a revisar sobre ajax

Y sobre mi consulta ajax del post anterior crees que tengas alguna idea del problema? :rolleyes:

te soy sincero, ese problema se lo achacaría a la compatibilidad entre navegadores, pero como hace rato no trabajo ese tipo de codigo sino que trabajo con jQuery y ExtJS entonces... resulta que esas librerias ya tienen resuelto esos pequeños inconvenientes así que... :S ta como duro de situar el problema :S

Pero tal ves, esto te pueda ayudar, el código que escribí en esa función es reviejo pero me acuerdo que funcionaba muy bien en cualquier navegador
http://my.opera.com/JALF/blog/mi-funcion-ajax-para-el-mundo

Salu2
 
te soy sincero, ese problema se lo achacaría a la compatibilidad entre navegadores, pero como hace rato no trabajo ese tipo de codigo sino que trabajo con jQuery y ExtJS entonces... resulta que esas librerias ya tienen resuelto esos pequeños inconvenientes así que... :S ta como duro de situar el problema :S

Pero tal ves, esto te pueda ayudar, el código que escribí en esa función es reviejo pero me acuerdo que funcionaba muy bien en cualquier navegador
http://my.opera.com/JALF/blog/mi-funcion-ajax-para-el-mundo

Salu2

ok, ya estoy leyendo el tutorial, ojalá sea más claro que los que yo he leido...
Gracias. Ya te contaré.
:-p
 
PHP - MySQL Nivel 1: Programación Aplicaciones Internet
Objetivos:
Cronograma

Conocer las características y las funcionalidades de la tecnología PHP

Conocer los fundamentos de programación con PHP y crear aplicaciones para el web

Crear aplicaciones que interactúen con el manejador de bases de datos MySQL y la herramienta cliente MySQL Front
Requisitos:

Conocimientos generales del uso del ambiente Windows, creación y manipulación de carpetas y archivos, opciones de edición , configuración de sitios, creación de páginas y diseño de formularios ( dreamweaver)

Conocimientos básicos de programación: tipos de datos, variables, estructura de un programa, estructuras de control, procedimientos y funciones

Conocimientos generales sobre creación y uso de bases de datos (campos, registros, creación de tablas, relaciones, formularios y consultas
Contenido:

Tecnología PHP:

Introducción. Evolución. Características y Capacidades

Recursos necesarios para su instalación. Proceso de instalación sobre plataforma Windows

Fundamentos de la programación con PHP

Tipos de datos, Variables generales, variables del sistema, Constantes

Operadores: Aritméticos, Cadena, Lógicos, Asignación, Bit a bit

Estructuras de control: If…else. If….elseif…else, Switch….case….default, While, Do while, For

Arreglos y matrices

Funciones:
Sintaxis general, instrucción Return
Funciones con parámetros. Funciones variables
Funciones para la manipulación de cadenas
Funciones para la manipulación de fecha y hora
Recursión

Optimización de código

Manejo de archivos

Creación y uso de clases.

Programación de formularios:

Etiqueta FORM

Cuadro de texto. Cuadro de texto con desplazamiento, Campo oculto

Botón de comando, Casilla de verificación, Botón de opción

Menú desplegable

Diseño y programación de formularios

Carga de archivos en el servidor (upload) desde una página PHP a través de formularios

MySQL y manejo de bases de datos:

Introducción a MySQL y principales características

Instalación y conexión del servidor MySQL

Instalación y uso del programa cliente MySQL Front

Creación y uso de bases de datos en PHP, creación de tablas, campos y registros de datos

Manipulación de bases de datos y operaciones con registros: agregar, modificar, consultar y eliminar

Talleres de ejercicios y problemas de programación.

mas info 3146062148 matriculas abiertas inicio clases 15 de febrero 2011
 
Select Dependientes y dinamicos

Hola gente,

despues de mucho lidiar con un problemilla con php y JS logre solucionarlo, se que no es muy optimo pero espero que me den tipcitos para mejorarlo y en caso de que alguien lo necesite ps que no sea sino usar el buscador y ya.

Basicamente lo que me sucedia era que tengo la informacion de unas empresas de transporte y sus rutas de despacho en una bd, obviamente no todas las empresas van a todos lados asi que para cada empresa hay ciertas rutas asignadas, necesitaba la manera de llenar 2 select dependientes en los cuales estuviera la informacion de las empresas y cuando selecionara en 1 la empresa en el otro salieran las rutas para la empresa seleccionada.

para llenar el primero fue facil solo haciendo la llamada y agregando los option asi:

PHP:
<?php
$conn = $usuario->conectar();
$qry = "select * from empresas";
$rs = mysql_query($qry, $conn);
while($row = mysql_fetch_array($rs)){
       $codemp = $row['emp_id'];
       $emp = $row['emp_nombre'];
       echo"<option Label='$emp' Value='$codemp'>$emp</option>\n";
}
mysql_free_result($rs);
$usuario->desconectar($conn);
?>
despues de esto empece a buscar como hacer el cambio del segundo Select para lo cual hice lo siguiente en Javascript:
Código:
function addruta(emp){
    var selrut = document.getElementById("rutas");
    selrut.length=0;
    selrut.add(new Option("Seleccione una Ruta!","00"),null);
    switch (emp){
        case "1":
            selrut.add(new Option("Tto Bogota","37"),null);
            selrut.add(new Option("Tto Nte","1"),null);
        break;
        case "2":
            selrut.add(new Option("Tto Nte","1"),null);
            selrut.add(new Option("Tto Sur","2"),null);
        break;

    }
}
una ves hecho esto cai en cuenta que cada vez que se agregara una empresa nueva y rutas nuevas tendria que cambiar la funcion addruta para poder ingresar los datos asi que investigando di cun la respuesta. La idea es generar un archivo .js con la funcion que necesito adicionando toda la informacion directamente desde la bd por medio de php, esa fue la funciona que hice para que lo hiciera:

PHP:
function makejscript($usuario){
    $file = fopen("scripts.js", "w");
    fwrite($file,"function addruta(emp){\n");
    fwrite($file,"\tvar selrut = document.getElementById(\"rutas\");\n");
    fwrite($file,"\tselrut.length=0;\n");
    fwrite($file,"\tselrut.add(new Option(\"Seleccione una Ruta!\",\"00\"),null);\n");
    fwrite($file,"\tswitch (emp){\n");
    $conn = $usuario->conectar();
    $qry = "select * from empresas";
    $rs = mysql_query($qry, $conn);
    while($row = mysql_fetch_array($rs)){
        $codemp = $row["emp_id"];
        fwrite($file,"\t\tcase \"$codemp\":\n");
        $qry1 = "select ruta_id, ruta_nombre from nomrutxemp where emp_id = $codemp order by ruta_nombre";
        $rs1 = mysql_query($qry1, $conn);
        while($row1 = mysql_fetch_array($rs1)){
            $codrut = $row1["ruta_id"];
            $ruta = $row1["ruta_nombre"];
            fwrite($file,"\t\t\tselrut.add(new Option(\"$ruta\",\"$codrut\"),null);\n");
        }
        fwrite($file,"\t\tbreak;\n");
    }
    fwrite($file,"\t}\n");
    fwrite($file,"}");
    fclose($file);
}
Esta funcion me genera un javascript perfectamente identado con el cual hago la actualizacion del segundo Select, y como ambos select son alimentados directamente desde la BD no hay necesidad de tocar nada del codigo cuando se agreguen nuevas empresas o rutas.

espero que este pequeño aporte le sirva de algo a la comunidad Lanera.
 
PHP - MySQL Nivel 1: Programación Aplicaciones Internet
Objetivos:
Cronograma

Conocer las características y las funcionalidades de la tecnología PHP

Conocer los fundamentos de programación con PHP y crear aplicaciones para el web

Crear aplicaciones que interactúen con el manejador de bases de datos MySQL y la herramienta cliente MySQL Front
Requisitos:

Conocimientos generales del uso del ambiente Windows, creación y manipulación de carpetas y archivos, opciones de edición , configuración de sitios, creación de páginas y diseño de formularios ( dreamweaver)

Conocimientos básicos de programación: tipos de datos, variables, estructura de un programa, estructuras de control, procedimientos y funciones

Conocimientos generales sobre creación y uso de bases de datos (campos, registros, creación de tablas, relaciones, formularios y consultas
Contenido:

Tecnología PHP:

Introducción. Evolución. Características y Capacidades

Recursos necesarios para su instalación. Proceso de instalación sobre plataforma Windows

Fundamentos de la programación con PHP

Tipos de datos, Variables generales, variables del sistema, Constantes

Operadores: Aritméticos, Cadena, Lógicos, Asignación, Bit a bit

Estructuras de control: If…else. If….elseif…else, Switch….case….default, While, Do while, For

Arreglos y matrices

Funciones:
Sintaxis general, instrucción Return
Funciones con parámetros. Funciones variables
Funciones para la manipulación de cadenas
Funciones para la manipulación de fecha y hora
Recursión

Optimización de código

Manejo de archivos

Creación y uso de clases.

Programación de formularios:

Etiqueta FORM

Cuadro de texto. Cuadro de texto con desplazamiento, Campo oculto

Botón de comando, Casilla de verificación, Botón de opción

Menú desplegable

Diseño y programación de formularios

Carga de archivos en el servidor (upload) desde una página PHP a través de formularios

MySQL y manejo de bases de datos:

Introducción a MySQL y principales características

Instalación y conexión del servidor MySQL

Instalación y uso del programa cliente MySQL Front

Creación y uso de bases de datos en PHP, creación de tablas, campos y registros de datos

Manipulación de bases de datos y operaciones con registros: agregar, modificar, consultar y eliminar

Talleres de ejercicios y problemas de programación.

mas info 3146062148 matriculas abiertas inicio clases 15 de febrero 2011

y que se supone q es eso amigo?
un servicio q prestas? un trabajo q debes realizar? o ?
 
Estoy desarrollando sistemas web construidos principalmente en PHP/MySQL; el caso es que necesito que estos sistemas se mantengan de una forma fácilmente expansibles/desarrollables manteniendo una buena lógica de procesos (manejando POO correctamente); por lo que en un futuro no muy lejano necesitare un programador experimentado para que me ayuda a revisar/mejorar los patrones logicos.

A cualquiera que este interesado envieme un MP (o un correo a ivanca en gma¡l) informándome cuanto me cobraria por una hora de su tiempo colaborandome en esta tarea e informandome un poquito sobre su experiencia en el campo de la programacion. Debe residir en Bogotá.
 
Estoy desarrollando sistemas web construidos principalmente en PHP/MySQL; el caso es que necesito que estos sistemas se mantengan de una forma fácilmente expansibles/desarrollables manteniendo una buena lógica de procesos (manejando POO correctamente); por lo que en un futuro no muy lejano necesitare un programador experimentado para que me ayuda a revisar/mejorar los patrones logicos.

A cualquiera que este interesado envieme un MP (o un correo a ivanca en gma¡l) informándome cuanto me cobraria por una hora de su tiempo colaborandome en esta tarea e informandome un poquito sobre su experiencia en el campo de la programacion. Debe residir en Bogotá.

FACIL!!!!
Utiliza el Framework Symfony 1.4 o puedes experimentar con la 2 que está en proceso de finalización

 
Ayuda con interpretación de código

Hola chicos, como les expliqué alguna vez en mi empresa hay un sistema que estoy modificando de a pocos y cada vez me encuentro con cosas que no he visto.
Aquí les muestro la clase listar: (obviamente he reducido los campos por motivos de espacio, pero funciona ah?).
PHP:
<?php
class ArticuloClass {

    function ArticuloClass() {
    }


function listar(){
       $query = "SELECT id, codigo, nombre FROM articulos";
       $BD = new ConexionDB();
       $recordSet = $BD->dbLink->Execute($query);
       if (!$recordSet){
         Debug::println("No se pudo ejecutar la consulta Listar: " . $query);
         return false;
       }
       $articulo = array();
       while($fila=$recordSet->FetchRow()) {
          $articulo[] = new ArticuloVO($fila['id'], $fila['codigo'], $fila['nombre']);
       }
      return $articulo;
}
Y aquí está el código de ConexionDB
PHP:
<?php
require_once ADODB_BASEFILE;
class ConexionDB {
    var $dbLink;
    function ConexionDB(){
        $this->dbLink = ADONewConnection(DB_TYPE);
        $this->dbLink->SetFetchMode(ADODB_FETCH_ASSOC);
        $dbconnected = $this->dbLink->PConnect(DB_HOST, DB_USER, DB_KEY, DB_DATA);
        if (!$dbconnected){
            Debug::println('No se pudo conectar a la Base de Datos');
            exit(0);
        }            
    }    
}
?>
El sistema trabaja con Smarty/Adodb/PHP.
Quisiera saber en qué parte se ejecuta $query, pues quiero utilizar mysql_num_rows() para obtener la cantidad de registros que se listarán. 8|
Cómo hago esto gracias.:-p

 
Bandolera,
AdoDb es una libreria para otorgar abstraccion en el manejo de base de datos, http://adodb.sourceforge.net/ ,
aqui tienes un tuto para MySQL http://phplens.com/lens/adodb/tute.htm aunque analizando tu problema con detenimiento te diria que puedes usar la funcion FieldCount();
suerte.
nope, para el caso se usa RecordCount()

Returns the number of rows in the record set
http://phplens.com/lens/adodb/docs-adodb.htm#recordcount

y de paso la documentacion completa
http://phplens.com/lens/adodb/docs-adodb.htm
 
Desde que dominio ingresaron¿?...

Como siempre, buenas tardes LANeros!!!

el tema con el cual hoy los molesto es el siguiente:

tengo tres dominios : www.Dominio.com www.Dominio1.com www.Dominio2.com

y todos tres direccionados s UN SOLO hosting, en el index del hosting necesito saber desde cual dominio accesaron

Espero haber sido lo suficientemente claro, este tema es de vital importancia para un desarrollo que tengo en curso, de antemano mis agradecimientos.
 
Como siempre, buenas tardes LANeros!!!

el tema con el cual hoy los molesto es el siguiente:

tengo tres dominios : www.Dominio.com www.Dominio1.com www.Dominio2.com

y todos tres direccionados s UN SOLO hosting, en el index del hosting necesito saber desde cual dominio accesaron

Espero haber sido lo suficientemente claro, este tema es de vital importancia para un desarrollo que tengo en curso, de antemano mis agradecimientos.

No me acuerdo bien pero creo que con $_SERVER['SERVER_NAME'] sacas eso.
Intenta imprimir la variable $_SERVER['SERVER_NAME'] y acceda desde los diferentes dominios a ver que te imprime, me parece que esa es la solución, sino avisas y te ayudo ;)
 
JALF gracias por la pronta respuesta
viejo $_SERVER['SERVER_NAME'] me como resultado el nombre del servidor en el cual esta alojada la pagina y hasta donde alcance a entender en medio de mi poco o mas bien nulo conocimiento php
http://php.net/manual/es/reserved.variables.server.php
$_SERVER[''] arroja datos del server actual :S

sera que tocara alojar direccionar cada uno de los dominios y en el hosting redireccionar con los datos desde donde se accedio¿?, no se que tan loca sea esta idea!!!!

de nuevo muchas gracias
 
JALF gracias por la pronta respuesta
viejo $_SERVER['SERVER_NAME'] me como resultado el nombre del servidor en el cual esta alojada la pagina y hasta donde alcance a entender en medio de mi poco o mas bien nulo conocimiento php
http://php.net/manual/es/reserved.variables.server.php
$_SERVER[''] arroja datos del server actual :S

sera que tocara alojar direccionar cada uno de los dominios y en el hosting redireccionar con los datos desde donde se accedio¿?, no se que tan loca sea esta idea!!!!

de nuevo muchas gracias

prueba esto y ya te mando un script que tal ves te saque rápido :p
$_SERVER['HTTP_HOST']

También encontré esto
http://www.webtaller.com/maletin/articulos/canonizar-url-dominio-con-php.php

Y sino haga esto y nos damos cuenta cual es que es la variable que sirve :p

echo "<pre>";
print_r($_SERVER);
echo "</pre>";
 

Los últimos temas