Foros del Web » Programando para Internet » PHP »

Duda sobre sintaxis en funcion "include"

Estas en el tema de Duda sobre sintaxis en funcion "include" en el foro de PHP en Foros del Web. Hola antes que nada debo aclarar que no soy ningun guru en php ni nada por el estlo, tan solo estoy dando mis primeros pasos. ...
  #1 (permalink)  
Antiguo 04/04/2004, 03:08
 
Fecha de Ingreso: mayo-2001
Mensajes: 135
Antigüedad: 16 años, 7 meses
Puntos: 0
Duda sobre sintaxis en funcion "include"

Hola antes que nada debo aclarar que no soy ningun guru en php ni nada por el estlo, tan solo estoy dando mis primeros pasos.

Bueno pues tengo una web, a la que le estoy metiendo contenido dinamico y requiero el uso de includes utilizando el siguiente codigo no tengo ningun problema.

<?php
include("lib/conexion.php");
$link=Conectarse();
$res1=mysql_query("select * FROM libros ORDER BY RAND() LIMIT 10", $link)
?>

Sin embargo por la estructura del sitio, en alguna secciones tengo que cambir el codigo de arriba e indicarle una ruta absoluta al include, he intentado con lo siguiente pero no obtengo resultados.

<?php
include("http://www.midominio.com/lib/conexion.php");
$link=Conectarse();
$res1=mysql_query("select * FROM libros ORDER BY RAND() LIMIT 10", $link)
?>

Hay alguna forma de hacer un include, especificando le ubicacion exacta del archvo a incluir, algo asi como utilizando el http://www.dominio.com/carpeta/archivo ??

Se que podria utilizar la funcion chdir sin embarg esto no me sirve ya que el codigo que pongo en una plantilla, sirve para generar varias paginas que se encuentran en diferentes carpetas y subcarpetas.

cualquier ayuda se las agradezco.
__________________
Bombin for peace
is like
fucking for virginity...
  #2 (permalink)  
Antiguo 04/04/2004, 03:33
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
puedes usar una variable global

Código PHP:
echo $_SERVER['DOCUMENT_ROOT']; 
http://www.php.net/manual/en/reserve...riables.server

-----------------------------

... sobre lo de tus includes...

a ver, veo que en cada fichero que necesitas hacer alguna consulta SQL, incluyes el fichero de CONEXION... bueno, esto no es del todo correcto... ya que llamas "x" veces a un mismo fichero, que a su vez conecta "x" veces con la base de datos... al final lo que ocurrira esq tendras 700 conexiones abiertas, el 1º problema q encontraras es la lentitud de la web,.,., claro, ahora no importa, casi no hay nada hecho, pero luego, cuando el script crezca, te daras cuenta!...

la solucion es hacer solo 1 conexion con la base de datos... bueno puedes hacer mas... eso ya es cosa de cada script y cada programador.

el tema es hacer Piramidal la WEB, ???, si, asi es, un fichero principal que llama a otro y ese a otro y asi, sucesivamente, asi 1 solo sera la conexion, que los demas usaran, para no estar copiando lo mismo en todos los ficheros...

para ello necesitas crear un menu Dinamico... tipo:

index.php?id=3

en las FAQ tienes un estupendo ejemplo... de como hacerlo.!
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 04/04/2004 a las 03:41
  #3 (permalink)  
Antiguo 04/04/2004, 04:33
 
Fecha de Ingreso: mayo-2001
Mensajes: 135
Antigüedad: 16 años, 7 meses
Puntos: 0
El sitio del que hablo esta en operacion actualmente y recibe arriba de 100,000 visitas al mes, vengo utilizando el codigo que te comente en el post anterior desde hace un buen rato, y como bien mencionas en cada archivo que los usuarios ven y son generados dinamicamente, hago una conexion a la base de datos con el archivo conexion.php

Código PHP:
<?php
function Conectarse()
{
   if (!(
$link=mysql_connect("localhost","user","pass")))
   {
      echo 
"Error conectando a la base de datos.";
      exit();
   }
   if (!
mysql_select_db("BD",$link))
   {
      echo 
"Error seleccionando la base de datos.";
      exit();
   }
   return 
$link;
}
?>
Despues hago la consulta.

Código PHP:
<?php
include("http://www.midominio.com/lib/conexion.php");
$link=Conectarse();
$res1=mysql_query("select * FROM libros ORDER BY RAND() LIMIT 10"$link
?>
Y por ultimo despliego los resultados y cierro la consulta ( o al menos eso creo.

Código PHP:
      while($row mysql_fetch_array($res1)) {
      
printf("<tr><td height=10></td></tr>");
      
printf("<tr><td class=1bcob<a href=\"cemex/noticia.php?id_not=%d\">%s </a>
</p><p><img src=\"cemex/img/%s\">Fuente: %s <br> %s<br><a href=\"cemex/noticia.php?id_not=%d\">
[Mas Información]</a></p></td>
</tr>"
$row["id_not"], $row["titulo"], $row["imagen"], $row["fuente"], $row["descr"], $row["id_not"]);
      
printf("<tr><td height=10><hr></td></tr>");
   }
   
mysql_free_result($res2);
   
mysql_close($link); 
Es correcto esto que estoy haciendo, al cerrar la conexion con el
Código PHP:
mysql_close($link); 
Y por ultimo se puede o no hacer el include directo a un archivo agregando el http://www.dominio.com/carpeta/archivo.php ??

gracias de nuevo.
__________________
Bombin for peace
is like
fucking for virginity...
  #4 (permalink)  
Antiguo 04/04/2004, 05:22
 
Fecha de Ingreso: abril-2004
Mensajes: 3
Antigüedad: 13 años, 8 meses
Puntos: 0
Podrías simplemente utilizar algo así como:

include ('/lib/conexion.php ');

en vez de utilizar:

include ("lib/conexion.php ");

< jjaimevera >
  #5 (permalink)  
Antiguo 04/04/2004, 06:11
 
Fecha de Ingreso: mayo-2001
Mensajes: 135
Antigüedad: 16 años, 7 meses
Puntos: 0
Cita:
Mensaje Original por jjaimevera
Podrías simplemente utilizar algo así como:

include ('/lib/conexion.php ');

en vez de utilizar:

include ("lib/conexion.php ");

< jjaimevera >
Lo que me comentas no funciona, ya que la funcion include, la voy a incluir en una plantilla que me genera los archivos en varios directorios y en diferentes niveles algo asi como

/dir/archivo.php
/dir/dir2/archivo.php
/dir/dir2/dir3/archivo.php
__________________
Bombin for peace
is like
fucking for virginity...
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:38.