Foros del Web » Programando para Internet » PHP »

paginator de jpinedo

Estas en el tema de paginator de jpinedo en el foro de PHP en Foros del Web. Hola jpinedo: Estoy usando el script paginator creado por jpinedo(muy bueno por cierto). Lo que tengo es la siguiente duda. Tengo un script llamado funciones.inc.php ...
  #1 (permalink)  
Antiguo 20/04/2004, 21:13
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
paginator de jpinedo

Hola jpinedo:
Estoy usando el script paginator creado por jpinedo(muy bueno por cierto). Lo que tengo es la siguiente duda. Tengo un script llamado funciones.inc.php donde tengo una función llamada server() que es más o menos así:
Código PHP:
//Función para realizar la conexión a la BD
function server(){
 global 
$coneccion;
 
$coneccion mysql_connect("localhost","root","") or die("No me he podido conectar al Servidor de BD en estos momentos. MySQL ha dicho: ".mysql_error($coneccion));
 
mysql_select_db("mxportal",$coneccion) or die("No me he podido conectar al Servidor de BD en estos momentos. MySQL ha dicho: ".mysql_error($coneccion));
 return 
$coneccion;

la cosa es que para poder usar el script paginator debo definir la consulta en todas las páginas donde lo uso. De esta forma:
Código PHP:
 $conecta mysql_connect("localhost","root","");
  
mysql_select_db("mxportal",$conecta);
  
$_pagi_sql "SELECT *,DAYOFMONTH(fechainsert) AS dia, MONTH(fechainsert) AS mes, YEAR(fechainsert) AS year, DATE_FORMAT(fechainsert,'%h:%i:%s %p') AS hora FROM  librodevisitas WHERE publico<>0 ORDER BY idfirma";
  
$_pagi_cuantos 5;
  include(
"paginador.inc.php"); 
Y si por ejemplo ahora mi servidor no fuese localhost porque lo hubiera cambiado por otro nombre entonces tendría que abrir archivo a archivo de los que usan el script y volver a redefinir la conexión. La cosa es que quiero saber si es posible dentro de paginator incluir mi fichero funciones.inc.php y de alguna manera utilizar la función server, pues de esta forma solo tendría que cambiar la conexión una vez.
Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 20/04/2004, 21:57
 
Fecha de Ingreso: marzo-2004
Ubicación: $_SERVER['DOCUMENT_ROOT'] :-)
Mensajes: 100
Antigüedad: 13 años, 8 meses
Puntos: 0
Perfectamente posible.

Intentalo y te sorprenderás. Solo piensa en la logica del sistema.

De hecho ese sería el comportamiento ideal de un paginador.
__________________
-- girls.code.better --
  #3 (permalink)  
Antiguo 20/04/2004, 23:26
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Reynier... la conexión a la BD no es parte del script...
No sé si te estoy entendiendo bien pero lo que quieres es utilizar tu función para conectarte y en caso de cambiar de servidor de mysql, sólo modificar la función...

Pues sólo tienes que hacerlo y ya. No va a haber problema.

Saludos
  #4 (permalink)  
Antiguo 20/04/2004, 23:33
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Sería algo así:
Código PHP:
$conexion server();

$_pagi_sql "SELECT *,DAYOFMONTH(fechainsert) AS dia, MONTH(fechainsert) AS mes, YEAR(fechainsert) AS year, DATE_FORMAT(fechainsert,'%h:%i:%s %p') AS hora FROM  librodevisitas WHERE publico<>0 ORDER BY idfirma";
$_pagi_cuantos 5;
include(
"paginator.inc.php"); 
Saludos
  #5 (permalink)  
Antiguo 21/04/2004, 08:12
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Gracias

Gracias jpinedo ya entendí lo que me dices
Salu2
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 21/04/2004, 12:54
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
una duda sobre este tema..., veo que la mayoria de los usuarios que programan en php y quieren actualizar, insertar, borrar o consultar la base de datos... siempre conectan antes de realizar sentencias SQL--- bueno... y pq es asi?, pq cada vez hay que abrir la conexion... para luego cerrarla... eso no relentizara nuestro script al tener un mayor numero de sentencias....

yo, no lo hago de esa manera.

si se supone que nuestro script esta basado en un supuesto menu.... con supuestos submenus..., por explicarlo de una forma tradicional. ejemplo tipico.

index.php?menu=id3
index.php?menu=panelPrincipal

pues yo lo que hago es abrir la conexion al principio del script, justo antes de necesitar cualquier dato de la BD, y cierro esa conexion justo al final del script... con lo cual, siempre que necesito consultar o realizar sentencias SQL, me encuentro que tengo acceso inmediato...

otra forma de verlo...

si nuestro script por ejemplo el de un portal, o nuestra web... hace 45 consultas desde que empieza hasta q termina... y entran 100 usuarios al dia... por ejemplo, eso son 4500 conexiones... al dia, yo creo que es un poco hardcore... quizas me equivoque, pero no creo que sea lo mas correto.

como ya digo, no se si todo esto puede llegar a influir, quizas no, pero aun asi lo veo un poco salvaje.

venga un saludo! y ha estudiar todos
__________________
3w.valenciadjs.com
3w.laislatv.com
  #7 (permalink)  
Antiguo 21/04/2004, 14:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm nuevo ..

Lo que dices es correcto .. el hecho de abrir tu conexión al principio y cerrarla al final de tu script (en la base).

Es decir en psudo código sería:

>> conecta a tu BD

>1 proceso a tu BD.
consultas/etc...
liberas memoria de la consulta realizada.
>2 proceso a tu BD.
consultas/etc...
liberas memoria de la consulta realizada.
>N proceso
consultas/etc...
liberas memoria de la consulta realizada.

<<< cierras tu BD

Pero, .. lo que ves por aquí en el foro son porciones "fuera de contexto" de alguna aplicación más grande o script que haga más cosas con una Base de datos ..

En tu ejemplo .. supongo que usas algún tipo de estructura "modular" donde llamas a tus códigos que hacen algo con tu BD por algún include .. en tu caso te biene bien hacer la conexión en el script (pagina) padre que llama a las otras porciones de código que hacen consultas/usan tu BD ...

En nº de conexiones será el nº de cargas/recargas de tu "index.php" .. La conexión la puedes hacer donde la necesites. PHP cierra conexiones a tu BD al terminar un script (si no son permanentes). Y si usas conexiones permanentes .. igual se ha de usar la función mysql_pconnect() o la que corresponda .. pero será tu BD la que gestione si el cliente que solicitó él último acceso a tu BD es el mismo de alguno de los que están abiertos .. si es así, lo sigue usando. Pero recuerda que no puedes tener infinitas conexiones persistentes activas ... así que si esto te ahorra un tiempo en la conexión al no tener que estar negociando una vez más el Usuario/contraseña para hacer la conexión, los recursos consumidos del servidor de BD aumentan progresivamente.

¿No sé si era a todo esto lo que te refieres?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 21/04/2004, 15:07
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Pues ...

Yo lo hago así lo pongo al principio de la página y lo cierro al final.
Salu2
__________________
Ing. Reynier Pérez Mira
  #9 (permalink)  
Antiguo 22/04/2004, 01:41
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
[Cluster] Pues creo que tienes tb toda la razon, es algo en lo que no llege a caer, Juas!... otro modo de verlo, demomento creo que no tendre problemas, pero es algo a tener encuenta, jejeje voy a investigar un poco mas...
__________________
3w.valenciadjs.com
3w.laislatv.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:22.