Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-01-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Question MySQL e Include, no me sale :(

Hola, hoy tengo este problema:

Hago una consulta a la base de datos para obtener el nombre de un archivo el cual sera incluido segun sea el orden que este posee en la base de datos, la consulta la hago de la siguiente manera:
Código PHP:
$result =mysql_query('SELECT nombre FROM dmo_modulos ORDER BY orden ASC');
while (
$mods=mysql_fetch_object($result)){
include (
'mods/'.$mods->nombre.'.php');
}; 
pero tengo 2 archivos y tan solo me incluye uno de ellos, luego intente cambiando el orden de ascendente a descendente y me queda de esta manera:
Código PHP:
$result =mysql_query('SELECT nombre FROM dmo_modulos ORDER BY orden DESC');
while (
$mods=mysql_fetch_object($result)){
include (
'mods/'.$mods->nombre.'.php');
        }; 
Y ahora me carga ambos archivos, porque pasa esto, si esta en ascendente, solo carga el primero, pero si esta en descendente me carga ambos.

Necesito que me los cargue en el orden en el cual estan en la base de datos, ¿Alguien sabe porque es esto?...¿alguna forma de arreglarlo?...

Si en lugar del include coloco "print_r($mods)", en ambos casos me muestra los datos completos.

Gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 18-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Lo veo raro. ¿Qué pasa si, por probar, te olvidas un momento de la consulta sql y haces los dos include() manualmente en el orden requerido?

// Saludos
Responder Con Cita
  #3  
Antiguo 18-01-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por roman
Lo veo raro. ¿Qué pasa si, por probar, te olvidas un momento de la consulta sql y haces los dos include() manualmente en el orden requerido?
lo hice en este momento, me cargo ambos archivos correctamente.
Responder Con Cita
  #4  
Antiguo 18-01-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Solucionado, por decirlo asi

E hecho esto:
Código PHP:
    $result =mysql_query('SELECT nombre FROM dmo_modulos ORDER BY orden ASC');
        
$i=0;
        while (
$mods=mysql_fetch_object($result)){
            
$i++;
            
$nombre[$i]=$mods->nombre;
        };
        foreach (
$nombre as $m){
            include (
'mods/'.$m.'.php');
        }; 
Con lo que me da el resultado deseado, pero me gustaria seguir este tema para saber cual era el problema, ya que la verdad a mi me parece muy raro esto y he pasado un buen rato dandole todas las vueltas que se me ocurren.

Saludos.
Responder Con Cita
  #5  
Antiguo 18-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Qué pasa si en lugar de fetch_object usas fetch_array?

Código PHP:
$result =mysql_query('SELECT nombre FROM dmo_modulos ORDER BY orden ASC');
while (
$mods=mysql_fetch_array($result))
{
  include (
'mods/'.$mods[0].'.php');

// Saludos
Responder Con Cita
  #6  
Antiguo 18-01-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por roman
¿Qué pasa si en lugar de fetch_object usas fetch_array?
ya lo he intentado con ...fetch_object ,..array,..assoc y en cada uno de ellos ocurre lo mismo.
Responder Con Cita
  #7  
Antiguo 19-01-2006
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 22
kayetano Va por buen camino
Hola

El sistema de carga es correcto. Casi seguro que el problema es del contenido de los includes ¿Se puede ver el contenido de los includes?
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #8  
Antiguo 19-01-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Hola

Fijate Kayetano que gracias a esto:
Cita:
Empezado por kayetano
Casi seguro que el problema es del contenido de los includes
me puse a revisar cada uno de ellos y creo que si el problema estaba ahi y es este:

En el script que cargaba los archivos tenia:
Código PHP:
$result =mysql_query('SELECT nombre FROM dmo_modulos ORDER BY orden ASC');
while (
$mods=mysql_fetch_object($result)){
include (
'mods/'.$mods->nombre.'.php');
}; 
y el codigo del primer archivo es:
Código PHP:
<? defined ('_dmox') or die ('No tiene permitido ver este recurso');
global 
$mods;
?>
<table class="tabladecontenido" width="100%"  align="center"border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
    
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
       <tr>
         <td class="titulo"><? echo $mods->titulo ?></td>
       </tr> 
<?     
     $result 
mysql_query("SELECT titulo, vinculo, orden FROM dmo_menu WHERE menu='principal' AND activo='1' ORDER BY orden");
     while (
$row mysql_fetch_object($result)) { ?>
           <tr>
          <td class="mprin" ><a  href="<? echo $row->vinculo?>" class="mprin" title="<? echo $row->titulo?>"><? echo $row->titulo?></a></td>
           </tr> 
<? ?>
    
</table></td></tr></table>
Como se podrán dar cuenta, en ambas consultas utilizo la variable $result para capturar el resultado de la consulta a la base de datos y por lo tanto al ser este el primer archivo a cargar era imposible que a la siguiente vuelta del while se pudiera cargar otro archivo pues habia cambiado el valor de la variable $result.

Bueno, gracias a ambos por su ayuda, me ha servido de mucho.

Saludos.

P.D.//Quien se hubiera imaginado que era algo tan facil por lo que me habia estado matando desde ayer. Bueno a seguir trabajando.
Responder Con Cita
  #9  
Antiguo 19-01-2006
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 22
kayetano Va por buen camino
Hola

En efecto, al incluir el archivo machacas el contenido de la variable y pierdes la consulta original. A veces el problema esta donde menos nos imaginamos.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
licencias mysql y firebird elpinjum MySQL 8 13-08-2005 02:52:14
MySql: ¿Una base de datos menor de edad? marto Debates 37 11-04-2004 19:49:14
error en conexion de bsas de datos mysql o de delphi??? omardelahoz Conexión con bases de datos 0 23-01-2004 17:20:25
Inserción masiva en MySQL Morfo MySQL 3 09-01-2004 18:05:33
Linux, MySql, Windows JorgeBec MySQL 11 14-11-2003 01:31:34


La franja horaria es GMT +2. Ahora son las 18:28:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi