Foros del Web » Programando para Internet » PHP »

Problema al mostrar los resultados de una consulta my sql

Estas en el tema de Problema al mostrar los resultados de una consulta my sql en el foro de PHP en Foros del Web. Hola a todos. Me gustaria si alguien me pudiera echar una mano con un script. Se trata, de que subo una imagen a la base ...

  #1 (permalink)  
Antiguo 09/08/2012, 09:05
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Problema al mostrar los resultados de una consulta my sql

Hola a todos. Me gustaria si alguien me pudiera echar una mano con un script. Se trata, de que subo una imagen a la base de datos de mysql y un campo, donde un usuario ponga el nombre de una imagen. Pues bien, sube perfectamente a la base d datos, pero cuando quiero verla mediante php, solo se muestra la imagen y no el campo "nombre". Alguien me podria ayudar para q viera las dos variables?.
Es decir, la base de datos "fichas", tiene el campo "iimagen" y "nombre".
Muchas gracias si me ayudas.
Este es la sentencia php,.....



<?php
//conexion a la base de datos
mysql_connect("localhost", "", "") or die(mysql_error()) ;
mysql_select_db("") or die(mysql_error()) ;

//vamos a crear nuestra consulta SQL
$consulta = "SELECT * FROM fichas";
/*<!-- $consulta = "SELECT imagen FROM fichas ORDER BY nombre DESC" -->*/
//con mysql_query la ejecutamos en nuestra base de datos indicada anteriormente
//de lo contrario mostraremos el error que ocaciono la consulta y detendremos la ejecucion.
$resultado= @mysql_query($consulta) or die(mysql_error());
//si el resultado fue exitoso
//obtendremos los datos que ha devuelto la base de datos
//y con un ciclo recorreremos todos los resultados
while ($datos = @mysql_fetch_assoc($resultado) ){
//ruta va a obtener un valor parecido a "imagenes/nombre_imagen.jpg" por ejemplo
$ruta = "imagenes/" . $datos['imagen'] ;

//ahora solamente debemos mostrar la imagen
echo "<td><a href=".$row['url']."><img src='$ruta' /></a></td>";
echo "<td><a href=".$row['url']."><img src='$nombre' /></a></td>"; HE COLOCADO ESTA SENTECIA Y NO ME MUESTRA NADA

}

?>
  #2 (permalink)  
Antiguo 09/08/2012, 09:18
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Problema al mostrar los resultados de una consulta my sql

$nombre es el nombre que recibe la imagen o el nombre del archivo de la imagen?

Ya que estás imprimiendo $nombre como si fuera una imagen.
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #3 (permalink)  
Antiguo 09/08/2012, 15:35
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

Buenas noches Carlos. Gracias por contestar.
$ nombre es el nombre que recibe la imagen que un usuario de la web le pone a la imagen que el mismo quiere subir a la base de datos creada con los campos "nombre", "imagen" y la "url" que le lleve a una pagina determinada.
Si, me has hecho ver que muestro el campo "nombre" como una imagen pero ya he probado a tratar el campo "nombre" como una variable y no consigo resultado mas alla d mostrar la imagen q el usuario ha subido con la url correspondiente que le pongo yo despues a la imagen.
Agradezco alguna idea tuya.
Muchas gracias.
  #4 (permalink)  
Antiguo 09/08/2012, 15:37
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Problema al mostrar los resultados de una consulta my sql

Y si tratas así:

Código PHP:
Ver original
  1. echo "<td><a href=".$row['url'].">".$nombre."</a></td>";

?
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #5 (permalink)  
Antiguo 09/08/2012, 15:42
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

echo "<td><a href=".$row['url']."><img src='$ruta' /></a></td>";
echo "$row[nombre]"; ESTA ES UNA DE LAS SENTENCIAS QUE HE PROBADO Y SOLO M MUESTRA EL CAMPO "IMAGEN" CON SU "URL" , PERO NO EL CAMPO "NOMBRE"
}

?>
  #6 (permalink)  
Antiguo 09/08/2012, 15:43
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

Voy a probarla ahora. Gracias
  #7 (permalink)  
Antiguo 09/08/2012, 15:49
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

Sigue sin ir Carlos. Solo me muestra la imagen que se ha subido, pero no el nombre, y ahora me he dado cuenta de que no me muestra la "url" de la imagen , sino q cada vez q incho en cada imagen, me carga la pagina de nuevo, sin remitir a ninguna direccion.
Que puede ser Carlos?. He modificado asi...

while ($datos = @mysql_fetch_assoc($resultado) ){
//ruta va a obtener un valor parecido a "imagenes/nombre_imagen.jpg" por ejemplo
$ruta = "imagenes/" . $datos['imagen'];

//ahora solamente debemos mostrar la imagen
echo "<td><a href=".$row['url']."><img src='$ruta' /></a></td>";
echo "<td><a href=".$row['url'].">".$nombre."</a></td>";
}

?>
  #8 (permalink)  
Antiguo 09/08/2012, 15:56
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Problema al mostrar los resultados de una consulta my sql

Si usted dice que la tabla tiene los campos "imagen" y "nombre" de donde saca $row['url'] ? es mas... si los datos se almacenan en $datos por que imprime $row['url'] ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #9 (permalink)  
Antiguo 09/08/2012, 16:01
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

El campo " url" es un campo que lleno yo personalmente, porque quiero que despues q se suba cada foto a la base de datos, cuando se muestre con una consulta php, le remita al link que le asigne yo cuando consulte internamente la base d datos Carlos.
Lo que no entiendo es porque se muestra lo q hay en el campo "imagen", pero no en el campo "nombre" ni "url".
Agradezco mucho q m vayas contestando Carlos
  #10 (permalink)  
Antiguo 09/08/2012, 16:02
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Problema al mostrar los resultados de una consulta my sql

Cita:
Iniciado por maquinistas Ver Mensaje
El campo " url" es un campo que lleno yo personalmente, porque quiero que despues q se suba cada foto a la base de datos, cuando se muestre con una consulta php, le remita al link que le asigne yo cuando consulte internamente la base d datos Carlos.
Lo que no entiendo es porque se muestra lo q hay en el campo "imagen", pero no en el campo "nombre" ni "url".
Agradezco mucho q m vayas contestando Carlos
Si usted dice que la tabla tiene los campos "imagen" y "nombre" de donde saca $row['url'] ? es mas... si los datos se almacenan en $datos por que imprime $row['url'] ? es mas... si el campo "nombre" esta almacenado en la base de datos y lo obtiene con fetch_array por que lo imprime como una variable $nombre ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #11 (permalink)  
Antiguo 09/08/2012, 16:03
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Problema al mostrar los resultados de una consulta my sql

Entonces

echo "<td><a href=".$row['url'].">".$row['nombre']."</a></td>";
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #12 (permalink)  
Antiguo 09/08/2012, 16:07
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

es q la tabla la cree primeramente con tres campos, mas el campo id.
Con un formulario, capturo la imagen q sube el usuario, y despues con una consulta php, se muestra la imagen y el nombre d la imagen q ha puesto el usuario.
Si no imprimo $row['url'] qué podria imprimir?.
Yo entiendo que es una variable $nombre, pero no se mostrar el contenido de las tres variables en una consulta php.
Gracias
  #13 (permalink)  
Antiguo 09/08/2012, 16:08
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

gracias Carlos, pruebo ahora tu sentencia
  #14 (permalink)  
Antiguo 09/08/2012, 16:09
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Problema al mostrar los resultados de una consulta my sql

Puedes mostrar la URL como la ruta de dónde está la imagen (en el caso que no la tengas en la BD)
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #15 (permalink)  
Antiguo 09/08/2012, 16:11
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

sigue mostrando solo la imagen Carlos.
He revisado la base de datos por si estaba en mayusculas o minusculas el campo "nombre" y "url" pero nada, todo sigue igual.
Gracias.
Sigo sin entender
  #16 (permalink)  
Antiguo 09/08/2012, 16:12
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

es que ya tengo rutas en el campo "url".
Ya tengo otras bases de datos con sus sentencias hechas y siempre me remiten a cada url q tiene asignada y nunca se me ha presentado este problema
  #17 (permalink)  
Antiguo 09/08/2012, 16:14
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Problema al mostrar los resultados de una consulta my sql

Bah, mala mía. Dónde veía $row['url'], no me fijé que haces el mysql_fetch con $datos. Es como decía jotaincubus. :p

echo "<td><a href=".$datos['url']."><img src='$ruta' /></a></td>";
echo "<td><a href=".$datos['url'].">".$datos['nombre']."</a></td>";
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #18 (permalink)  
Antiguo 09/08/2012, 16:17
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

Pruebo ahora y te digo.
Muchas gracias
  #19 (permalink)  
Antiguo 09/08/2012, 16:29
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

Muchas, muchas gracias a Carlos y Jotain por vuestra sincera ayuda. Ahora ya me muestra perfectamente lo que contienen estas variables en la base de datos.
Solo una pregunta, si quisiera subir no una imagen sino un documento de texto en word por ejemplo, con este sript....
me da error, no me permite subir un word, he puesto lo que esta escrito en rojo




?>
<?php
echo $_POST[nombre];
<?php
//conexion a la base de datos
mysql_connect("", "", "") or die(mysql_error()) ;
mysql_select_db("") or die(mysql_error()) ;

//comprobamos si ha ocurrido un error.
if ($_FILES["imagen"]["error"] > 0){
echo "ha ocurrido un error";
} else {
//ahora vamos a verificar si el tipo de archivo es un tipo de imagen permitido.
//y que el tamano del archivo no exceda los 100kb
$permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png", "image/docx"); ESTO EN ROJO SE LO AÑADÌ YO
$limite_kb = 200;

if (in_array($_FILES['imagen']['type'], $permitidos) && $_FILES['imagen']['size'] <= $limite_kb * 900024){
//esta es la ruta donde copiaremos la imagen
//recuerden que deben crear un directorio con este mismo nombre
//en el mismo lugar donde se encuentra el archivo subir.php
$ruta = "imagenes/" . $_FILES['imagen']['name'];
//comprobamos si este archivo existe para no volverlo a copiar.
//pero si quieren pueden obviar esto si no es necesario.
//o pueden darle otro nombre para que no sobreescriba el actual.
if (!file_exists($ruta)){
//aqui movemos el archivo desde la ruta temporal a nuestra ruta
//usamos la variable $resultado para almacenar el resultado del proceso de mover el archivo
//almacenara true o false
$resultado = @move_uploaded_file($_FILES["imagen"]["tmp_name"], $ruta);
if ($resultado){
$nombre = $_FILES['imagen']['name'];

@mysql_query("INSERT INTO fichas(imagen, nombre )VALUES ('$nombre','$_POST[nombre]')") ;
echo "el archivo ha sido movido exitosamente";
} else {
echo "ocurrio un error al mover el archivo.";
}
} else {
echo $_FILES['imagen']['name'] . ", este archivo existe";
}
} else {
echo "archivo no permitido, es tipo de archivo prohibido o excede el tamano de $limite_kb Kilobytes"; ESTO ES EL ERROR QUE ME SALE AL PONER LO QUE ESCRIBO EN ROJO ARRIBA
}
}
  #20 (permalink)  
Antiguo 09/08/2012, 16:30
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

Agradezco mucho vuestros comentarios
  #21 (permalink)  
Antiguo 09/08/2012, 16:33
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Problema al mostrar los resultados de una consulta my sql

image/docx es inválido.
Deberías jugar con el $_FILE y el type para saber de qué tipo es cada archivo.

Para los documentos word se usa el application/msword
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #22 (permalink)  
Antiguo 09/08/2012, 16:34
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

y por donde podria ir para solucionar esta cuestion Carlos?
  #23 (permalink)  
Antiguo 09/08/2012, 16:37
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Problema al mostrar los resultados de una consulta my sql

En vez de imagen/docx pones application/msword...
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #24 (permalink)  
Antiguo 09/08/2012, 16:38
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

Pruebo ahora Carlos.
Gracias
  #25 (permalink)  
Antiguo 09/08/2012, 16:43
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

no he modificado nada mas que esto Carlos,

$permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png", "application/msword");
$limite_kb = 200;



y tan solo cargar la pagina web, me muestra lo siguiente,


archivo no permitido, es tipo de archivo prohibido o excede el tamano de 200 Kilobytes
  #26 (permalink)  
Antiguo 09/08/2012, 16:55
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Problema al mostrar los resultados de una consulta my sql

Para archivos .DOC office menor o igual a 2003 use application/msword para .DOCX office mayor o igual a 2007 use application/vnd.openxmlformats-officedocument.wordprocessingml.document
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #27 (permalink)  
Antiguo 09/08/2012, 17:10
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

Carlos, una pregunta, no solo tendria q cambiar donde pone $permitidos poniendo

$permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");

sino que tambien tendria que cambiar lo de $_FILES ??.

Gracias Carlos
  #28 (permalink)  
Antiguo 09/08/2012, 17:12
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

gracias Jotain, me lie con quien me lo decia de los dos. Perdon y muchas gracias por tu respuesta Jotain. Es un tema que no domino mucho y por eso pregunto. Gracias
  #29 (permalink)  
Antiguo 09/08/2012, 17:17
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Problema al mostrar los resultados de una consulta my sql

Cita:
Iniciado por maquinistas Ver Mensaje
gracias Jotain, me lie con quien me lo decia de los dos. Perdon y muchas gracias por tu respuesta Jotain. Es un tema que no domino mucho y por eso pregunto. Gracias
Según su código solo es necesario agregar la aplicación deseada... no es necesario cambiar nada mas.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #30 (permalink)  
Antiguo 09/08/2012, 17:43
 
Fecha de Ingreso: agosto-2012
Ubicación: vigo
Mensajes: 84
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema al mostrar los resultados de una consulta my sql

Muchas, muchas gracias Jotain. Sube perfectamente un archivo word.
Lo que pasa es que cuando le digo mediante una sentencia php que me muestre las imagenes, en este caso ya con un documento word en este campo, solo me muestra la imagen pero no el documento word. Que deberia poner en la sentencia php para q me apareciera visionado lo que hay dentro del documento word o simplemente el link para descargarlo y verlo??.
Te dejo d nuevo la sentencia php que gracias a los dos me muestra todos los campos que hay dentro d las variables d la base de datos.



<?php
//conexion a la base de datos
mysql_connect("localhost", "", "") or die(mysql_error()) ;
/vamos a crear nuestra consulta SQL
$consulta = "SELECT * FROM fichas";
/*<!-- $consulta = "SELECT imagen FROM fichas ORDER BY nombre DESC" -->*/
//con mysql_query la ejecutamos en nuestra base de datos indicada anteriormente
//de lo contrario mostraremos el error que ocaciono la consulta y detendremos la ejecucion.
$resultado= @mysql_query($consulta) or die(mysql_error());
//si el resultado fue exitoso
//obtendremos los datos que ha devuelto la base de datos
//y con un ciclo recorreremos todos los resultados
while ($datos = @mysql_fetch_assoc($resultado) ){
//ruta va a obtener un valor parecido a "imagenes/nombre_imagen.jpg" por ejemplo
$ruta = "imagenes/" . $datos['imagen'] ;

//ahora solamente debemos mostrar la imagen
echo "<td><a href=".$datos['url']."><img src='$ruta' /></a></td>";
echo "<td><a href=".$datos['url'].">".$datos['nombre']."</a></td>";
}

?>







Muchisimas gracias por tu ayuda

Etiquetas: imagenes, mysql, resultados, sql, variables, usuarios
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 14:25.