Foros del Web » Programando para Internet » PHP »

imagen "foto de mes"

Estas en el tema de imagen "foto de mes" en el foro de PHP en Foros del Web. Buenas tardes a todos¡ Espero que me podáis ayudar en un asunto: Estoy realizando una página en la que una de las secciones se llama ...
  #1 (permalink)  
Antiguo 25/01/2013, 11:04
 
Fecha de Ingreso: enero-2013
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
imagen "foto de mes"

Buenas tardes a todos¡
Espero que me podáis ayudar en un asunto:
Estoy realizando una página en la que una de las secciones se llama "La foto del mes", pero de la forma más básica que hay para entrenarme en esto del php y mysql; para ello lo primero de todo que he hecho ha sido crear una nueva base de datos; aquí os dejo la información de ésta:


CREATE TABLE IF NOT EXISTS `fm` (
`id` int(10) NOT NULL,
`foto` varchar(30) NOT NULL,
`mes` int(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `fm`
--

INSERT INTO `fm` (`id`, `foto`, `mes`) VALUES
(1, 'FOTO_MES', 1),
(2, 'FOTO_MES2', 0),
(3, 'FOTO_MES3', 0);

como veis; se trata de una tabla muy simple. Podéis ver que mi bd tiene una tabla a la que he llamado "fm" y ésta tiene 3 campos; pues bien; lo que me interesa es crear código para que sólo me muestre la foto que tiene como valor en 'mes' el número '1'.

He estado probando, pero donde debe aparecer mi foto lo único que me aparece es una caja con el cuadrado azul de interrogación, como si yo en el código que he escrito me faltara una condición.
Se que me falta algo importante pero estoy empezando con ello y me haríais un gran favor si me ayudarais.


Aquí os dejo el código que llevo:

<?php

$query = "SELECT *";
$query .= "FROM fm";
$query.="WHERE mes LIKE'%1%'";


$result=mysql_query($query,$conexion);

?>
<div id="fotomes">

<img src="IMG/<?php echo $row['foto'] ?>.jpg" width="783" alt="<?php echo $row['mes'] ?>"/>

</div>





Muchas gracias¡
  #2 (permalink)  
Antiguo 25/01/2013, 11:11
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: imagen "foto de mes"

no te hace falta usar like, a no ser que quieras encontrar patrones, por lo tanto con mes = 1 bastaría

No veo que extraigas la data en ningún momento $row no se llena solo, necesitas un mysql_fetch_assoc(), mysql_query sólo ejecuta la consulta

si en el navegador te sigue apareciendo ?, es debido a que el web server no encuentra la imágen, puede ser porque el OS es case sensitive como linux donde las mayúsculas si importen.

tambien respecto a la ubicación del archivo, ¿la carpeta IMG está en la raiz del document_root?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 26/01/2013, 17:23
 
Fecha de Ingreso: enero-2013
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: imagen "foto de mes"

Cita:
Iniciado por maycolalvarez Ver Mensaje
no te hace falta usar like, a no ser que quieras encontrar patrones, por lo tanto con mes = 1 bastaría

No veo que extraigas la data en ningún momento $row no se llena solo, necesitas un mysql_fetch_assoc(), mysql_query sólo ejecuta la consulta

si en el navegador te sigue apareciendo ?, es debido a que el web server no encuentra la imágen, puede ser porque el OS es case sensitive como linux donde las mayúsculas si importen.

tambien respecto a la ubicación del archivo, ¿la carpeta IMG está en la raiz del document_root?

Si, la carpeta IMG está en la raíz.

He intentado hacerlo con lo que me has dicho y me sale este error:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/WEB_SHOOT-PHP/Foto_del_mes.php on line 58


y este es el código:

<?php

$query = "SELECT *";
$query .= "FROM fm";
$query.="WHERE mes = 1";

$result=mysql_query($query,$conexion);
$num=mysql_num_rows($result);

if ($num>0)
{
$row=mysql_fetch_assoc($result);

{

?>

<div id="fotomes">

<img src="IMG/<?php echo $row['foto'] ?>.jpg" width="783" alt="<?php echo $row['mes'] ?>"/>

</div>

<?php
}
}
?>




Muchas gracias por la ayuda.
Paso a paso y error a error estoy intentando aprender.
  #4 (permalink)  
Antiguo 26/01/2013, 17:43
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: imagen "foto de mes"

El problema indica que la función mysql_num_rows esperaba 1 parametro y que no está recibiendo nada o algo sin contenido.

Puede ser que tu consulta no esté devolviendo datos de tu tabla fm, comprueba que tengas datos y que la consulta sea válida para recuperarlos, me refiero a la condición que usas con el WHERE, si de verdad tenes algo para sacar de la tabla con valor = 1 o no.
  #5 (permalink)  
Antiguo 26/01/2013, 18:11
 
Fecha de Ingreso: enero-2013
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: imagen "foto de mes"

Cita:
Iniciado por rodrigo791 Ver Mensaje
El problema indica que la función mysql_num_rows esperaba 1 parametro y que no está recibiendo nada o algo sin contenido.

Puede ser que tu consulta no esté devolviendo datos de tu tabla fm, comprueba que tengas datos y que la consulta sea válida para recuperarlos, me refiero a la condición que usas con el WHERE, si de verdad tenes algo para sacar de la tabla con valor = 1 o no.
Esta es mi tabla:

`id` int(10) NOT NULL,
`foto` varchar(30) NOT NULL,
`mes` int(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `fm`
--

INSERT INTO `fm` (`id`, `foto`, `mes`) VALUES
(1, 'FOTO_MES', 1),
(2, 'FOTO_MES2', 0),
(3, 'FOTO_MES3', 0);

en la primera fila, mes=1
no se que puede ser.

Etiquetas: codigophp, datos+db+mysql
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 20:30.