Foros del Web » Programando para Internet » PHP »

Problemas en consultas de archivos en el servidor...

Estas en el tema de Problemas en consultas de archivos en el servidor... en el foro de PHP en Foros del Web. Hola..!! Tengo una pequeña duda por que no se bien como mandar a llamar el archivo del servidor... tengo una tabla que se llama timagenes ...
  #1 (permalink)  
Antiguo 30/05/2004, 22:11
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
Problemas en consultas de archivos en el servidor...

Hola..!!

Tengo una pequeña duda por que no se bien como mandar a llamar el archivo del servidor... tengo una tabla que se llama timagenes que es la que almacena las imagenes de una empresa contiene los campos CveImage (clave de la imagen) NomImage (Nombre de la imagen que le de el usuario), CveEmpre(clave de la empresa a quien pertenece la imagen) y ImagenEm (que es donde se supone debe ir la ruta)...no sé bien como hacer la consulta a la base de datos para que me muestre la imagen si selecciono a la empresa obviamente con la clave.... si alguno tiene idea de como hacerlo se los agradecería.... se supone que el vinculo entre la imagen y la empresa son las claves...

Mil gracias de antemano !

Salu2
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #2 (permalink)  
Antiguo 30/05/2004, 22:43
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
creo que aqui te puedo ayudar, si lo que tienes es la ruta en tu db puedes hacer una consulta sql mas o menos asi

Código PHP:
<?php
$id
=$HTTP_GET_VARS["id"];//cambia el valor por el que necesites, o cambia el metodo de get por post si es desde un formulario

$conexion mysql_connect('localhost','tu_usuario','tu_password');
mysql_select_db ("tu_db"$conexion);
$resultado mysql_query("SELECT CveImage,NomImage,CveEmpre,ImagenEm FROM tu_tabla WHERE $id = user_id"$conexion);
$array mysql_fetch_array($resultado);
$cveimage = ($array["CveImage"]); 
$nomimage = ($array["NomImaged"]);
$cveempre = ($array["CveEmpre"]);
$imagenem = ($array["ImagenEm"]);
?>
ahora para poner los resultados en donde quieres utiliza este

Código PHP:
<?php echo"$valor"?>
y para la imagen podria ser asi

Código PHP:
<img src="<?php echo "$valor"?>">
espero que te sirva
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 30/05/2004, 23:08
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
Holaaaaa

Gracias por responder pero no me funcionaaaaaa no sé por queeeee... pero no me carga la imagen además de que no entendi bien donde debo poner ese codigo...en la pagina q manda a llamar el formulario vdd???... y eso de

$id=$HTTP_POST_VARS como q no le entendi bien

Gracias de antemano
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #4 (permalink)  
Antiguo 30/05/2004, 23:13
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
que error te mando??, y una pregunta muy importante, estas guardando una url de imagen " http://www.servidor.com/imagenes/imagenes.jpg "???

ahora, para que te de un codigo mejor, dime de donde estas recibiendo el valor de id, desde un link o desde un formulario???

porcierto, supongo que " CveImage " es tu clave unica de cada registro de tu tabla, no???
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 30/05/2004 a las 23:16
  #5 (permalink)  
Antiguo 30/05/2004, 23:19
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
Es a traves de un formulario y si, la clave de imagen es unica para cada imagen }


Ahhh y si guarda una ruta ...pero como lo estoy haciendo local pues lo guarda local c:apache...etc.... entonces pues creo q eso no debe ser problema no?..por que lo estoy probando solamente local

Gracias
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #6 (permalink)  
Antiguo 30/05/2004, 23:28
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
ok, perfecto, ahora te puedo dar un codigo mejor, este codigo lo pones antes de donde quieras que valla la imagen, preferiblemente antes de <html>

supongo que solo quieres ver la imagen,

aqui te pongo el codigo cuando se llama desde un link (tienes que ponerle el link un valor asi " pagina.php?id=el_id_de_la_imagen ")

Código PHP:
<?php 
$id
=$HTTP_GET_VARS["id"];

$conexion mysql_connect('localhost','tu_usuario','tu_password'); 
mysql_select_db ("tu_db"$conexion); 
$resultado mysql_query("SELECT * FROM timagenes WHERE $id = CveImage"$conexion); 
$array mysql_fetch_array($resultado);
$imagen = ($array["ImagenEm"]); 
?>
este codigo es cuando se llama desde un formulario

Código PHP:
<?php 
$id
=$HTTP_POST_VARS["id"];

$conexion mysql_connect('localhost','tu_usuario','tu_password'); 
mysql_select_db ("tu_db"$conexion); 
$resultado mysql_query("SELECT * FROM timagenes WHERE $id = CveImage"$conexion); 
$array mysql_fetch_array($resultado);
$imagen = ($array["ImagenEm"]); 
?>
ahora, en cualquier codigo que utilices puedes llamar a la imagen con este codigo

Código PHP:
<img src="<?php echo "$valor"?>">
si no te funciona, pon el error que te manda para ver que es lo que esta mal
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 30/05/2004, 23:33
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
no trabajes direcciones absolutas, trabaja direcciones relativas, es incorrecto usar direcciones absulutas, por que si cambias de lugar la carpeta(p.e al subir los archivos al servidor) todas las rutas dejan de funcionar correctamente

un saludo
  #8 (permalink)  
Antiguo 30/05/2004, 23:47
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
El array no lo acepta marca error ahi :S el $id supongo q debe tener el valor d la cve de la empresa para poder hacer la consulta que no???!! eso hago pero como que no... y marca error en la linea del array ... y la imagen obviamente no se ve

$id=$HTTP_POST_VARS["lstempresa"];


$sql = "SELECT * FROM timagenes WHERE CveEmpre ='".$id."'";
$resultado = mysql_query($sql);
$array = mysql_fetch_array($resultado);
echo "$array";
$imagenem = ($array["ImagenEm"]);
?>

<img src="<?php echo "$imagenem"; ?>">
</form>
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #9 (permalink)  
Antiguo 30/05/2004, 23:51
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
sism82...antes que nada gracias por contestar este post... y luego... podrías ser mas explicitoooo :(

Gracias de antemano
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #10 (permalink)  
Antiguo 30/05/2004, 23:58
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
verifica bien que los datos coincidan con tu db, pues el array toma los datos de la consulta sql, entonse, si no hace una consulta correcta te fallara el array, lo que puedes hacer es que en la linea donde se hace la cunsilta lo cambies por esto

Código PHP:
$resultado mysql_query($sql) or die (mysql_error()); 
y luego dinos que es lo que te marco
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #11 (permalink)  
Antiguo 31/05/2004, 00:10
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
una dirección absoluta es algo asi:

Código:
esos tres ejemplos son de rutas absolutas a una imagen. No es en absoluto recomendable hacer eso, sin embargo hay ocasiones en que es necesario. Pero no creo que sea tu caso.

Código:
imagenes/tuimagen.jpg

../../imagenes/tuimagen.jpg
donde los " ../ " sirven para subir de carpeta...

hazme un favor y dale click derecho a las imágenes que no se despliegan, y fijate que ruta muestra

por último, simplemente toma la ruta que guardaste con una consulta normal de SQL y ponla en el SRC de la etiqueta <img... y tanto a nemutagk como a mi nos será útil que error te indica PHP para saber que es lo que está mal y creo que lo que esta mal en el código es:

Código PHP:
$resultado mysql_query("SELECT * FROM timagenes WHERE $id = CveImage"$conexion); 
mejor trata con esto

Código PHP:
$resultado mysql_query("SELECT * FROM timagenes WHERE CveImage = $id"$conexion) or die(mysql_error()); 

asi de perdida te devuelve el error de mysql en caso de haberlo...
  #12 (permalink)  
Antiguo 31/05/2004, 00:12
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
ah y si estas usando claves alfanuméricas, el error va a ser que no hay comillas simples alrededor de $id

Código PHP:
$resultado mysql_query("SELECT * FROM timagenes WHERE CveImage = '$id' "); 
  #13 (permalink)  
Antiguo 31/05/2004, 00:12
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
pues no me marca error alguno simplemente no muestra la imagen pone el clásico cuadrito con la tachita ...

mira tengo el archivo q es showimage en donde solo tengo esto en un formulario

<?php
SelectBox ("Tipo", "lstTipo");
SelectBox ("Empresa", "lstEmpresa");
SelectBox ("Imagen", "lstImagen");
?>

lstempresa tiene la cve de la empresa .. mando a llamar a show.php a través del boton del formulario


y ahi es donde pongo el codigo q me proporcionaste

<?php
require ("conexion.txt");
$id=$HTTP_POST_VARS["lstempresa"];


$sql = "SELECT * FROM timagenes WHERE CveEmpre ='".$id."'";
$resultado = mysql_query($sql) or die (mysql_error());
$array = mysql_fetch_array($resultado);
echo $ImagenEm; <--ni siquiera me muestra lo q hay en ImagenEn osea la ruta
$imagenem = ($array["ImagenEm"]);
?>

<img src="<?php echo "$imagenem"; ?>">
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #14 (permalink)  
Antiguo 31/05/2004, 00:17
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
Entonces el fallo está desde que lo guardo???...por que como lo guardo local pues si me lo guarda asi como dices c:\apache\apache\htdocs\tusitio\imagenes\tuimagen. jpg .... pero es q utilizo el

<?
require ("conexion.txt");

$NombreBi=$usuarioactual;
$AccionBi='Alta de Imagen: '.$NomImage;

$uploaddir = $_SERVER['DOCUMENT_ROOT']."/uploads/";
$uploadfile = $uploaddir . $_FILES['ImagenEm']['name'];
$ruta = $_SERVER['DOCUMENT_ROOT']."/uploads/".$_FILES['ImagenEm']['name'];

print "<pre>";
if (move_uploaded_file($_FILES['ImagenEm']['tmp_name'], $uploadfile)) {

$sql = "INSERT INTO timagenes (CveImage, NomImage, ImagenEm, CveEmpre) VALUES ('$CveImage', '$NomImage', '$ruta', '$lstEmpresa')";
$result = mysql_query($sql);
$sql = "INSERT INTO tbitacora (CveEmpre, NombreBi, FechaBit, Horasbit, AccionBi) VALUES ('$lstEmpresa', '$NombreBi', '$fecha', '$hora', '$AccionBi')";
$result = mysql_query($sql);
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {

print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
print "</pre>";
?>
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #15 (permalink)  
Antiguo 31/05/2004, 00:18
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
una cosa importante, que tipo de valor es lstempresa pues me ha pasado que si no es valor numerico no me hace la consulta sql, tengo entendido que para que la consulta sql funcione con cualquier valor, sea numerico o texto tienes que poner CveEmpre ='".%$id." pero no estoy seguro
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #16 (permalink)  
Antiguo 31/05/2004, 00:22
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
intentalo con clave unica autoincrementable, si te funciona asi, es que es problema del WHERE
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #17 (permalink)  
Antiguo 31/05/2004, 00:28
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
pues Cveempresa es varchar...

y la consulta si la hago asi $sql = "select * from timagenes where CveEmpre =".$id;

:S:S:S:S
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #18 (permalink)  
Antiguo 31/05/2004, 00:33
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
en ese último mensaje casiopea, tu consulta no es correcta..

si tu vas a consultar un campo que no es numerico, debes poner el valor entre comillas dobles o simples, generalmente se usan simples.

algo así:

Código PHP:
$sql "SELECT * FROM timagenes WHERE CveEmpre = '".$id."'"
te sugiero que tomes en cuenta lo que te dije, usa mysql_error() y fijate en el error, esto realmente es muy simple, pero se esta haciendo mas pesado de lo que debería por que no estamos detectando el error...
  #19 (permalink)  
Antiguo 31/05/2004, 00:36
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
Sii, ya se lo puse pero no marca error y ya hice lo de las imagenes de darle click y me dice q la ruta es localhost /empresas osea donde tengo los html docs ... supongo q por eso no jala imagenes,,,...pero de error nada y ya le cambie tmb lo d las comillas :)

gracias
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #20 (permalink)  
Antiguo 31/05/2004, 00:42
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
bueno, para proseguir asegurate de estas cosas:

1.La ruta hacia la imágen, que está guardada en la base de datos es correcta.
2.La imagen existe en esa ruta.

si eso es correcto, podemos inferir que el error es al consultar..
  #21 (permalink)  
Antiguo 31/05/2004, 00:46
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
Sip, la ruta q guarda es la siguiente:

c:/apache/htdocs/uploads/Antonio3.JPG

y la imagen si existe ...entonces..??? supongo q como dices es al consultar

Aqui vuelvo a poner el codigo que tengo


<?
require ("conexion.txt");
$id=$HTTP_POST_VARS["lstempresa"];


$sql = "SELECT * FROM timagenes WHERE CveEmpre = '".$id."'" ;
$resultado = mysql_query($sql) or die (mysql_error());
$array = mysql_fetch_array($resultado);
echo $ImagenEm;
$imagenem = ($array["ImagenEm"]);
?>

<img src="<?php echo "$imagenem"; ?>">

de antemano mil gracias por responder los mensajes :)
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #22 (permalink)  
Antiguo 31/05/2004, 00:53
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
bueno, primero esto no viene mucho al caso :p, pero procura no poner tus funciones de conexión en un TXT

ahora, nunca me ha pasado por que nunca uso ese tipo de rutas para las imágenes, pero por seguridad no es lógico que Apache permita el acceso a el disco duro donde esta corriendo. Solo permite acceso al sitio donde se encuentra.

El problema creo que va a ser ese, no puedes mandar llamar así la imágen desde el servidor. Así que usa una ruta relativa, es decir, si tu script se encuentra en la misma carpeta que la imagen, entonces simplemente mandala llamar con "Antonio3.JPG" que sea esa la ruta que se guarde... me explico?
  #23 (permalink)  
Antiguo 31/05/2004, 00:59
 
Fecha de Ingreso: mayo-2004
Mensajes: 69
Antigüedad: 19 años, 11 meses
Puntos: 1
no tengo el script en la misma carpeta..lo guarde como /uploads/Antonio3.JPG pero tampoco se puede... no tienes algun ejemplo del cual pueda copiar?? :) te lo agradecería miiiil
__________________
...::::CaSsiOpEiA::::

"El VaLoR De LaS CoSaS No EsTá En El TiEmPo QuE DuRaN, SiNo En La InTeNsIdAd Con La QuE SuCeDeN...PoR EsO ExIsTeN MoMeNtOs InOLvIdAbLeS, CoSaS InExPLicAbLeS Y PeRsOnAs InCoMpArAbLeS"
  #24 (permalink)  
Antiguo 31/05/2004, 01:04
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
ups, mi código lo dejo siempre en mi trabajo... si te interesa ayuda un poco mas directa mi msn es [email protected]

si no, bueno, no queda mas que seguirle por aqui a ver cual es el error...

y el link /uploads/Antonio3.jpg indica que se vaya hasta root... no se si sea lo indicado para tu caso
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 15:11.