Foros del Web » Programando para Internet » PHP »

Crear página detalle de un anuncio

Estas en el tema de Crear página detalle de un anuncio en el foro de PHP en Foros del Web. Hola amigos, Tengo una web más o menos montada (encaminada) de anuncios. Tengo una página principal donde salen los últimos anuncios publicados y estos salen ...
  #1 (permalink)  
Antiguo 25/10/2010, 13:27
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 14 años, 11 meses
Puntos: 5
Crear página detalle de un anuncio

Hola amigos,

Tengo una web más o menos montada (encaminada) de anuncios. Tengo una página principal donde salen los últimos anuncios publicados y estos salen con una pequeña descrición y una pequeña imagen. Lo que me interesa ahora es que el usuario pueda pinchar sobre un enlace que ponga en ese anuncio y lo lleve a una página donde se vea el anuncio en grande y detallado.

Alguien me puede indicar donde puedo encontrar información sobre como hacer esto?

Pongo mi código php donde muestro los últimos anuncios añadidos:

Código PHP:
<?php

//Conexion con la base
$link mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches",$link);



//Limito la busqueda
$TAMANO_PAGINA 10;

//examino la página a mostrar y el inicio del registro a mostrar
$pagina $_GET["pagina"];
if (!
$pagina) {
    
$inicio 0;
    
$pagina=1;
}
else {
    
$inicio = ($pagina 1) * $TAMANO_PAGINA;
}


//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$tabla "select * from coches " $criterio;
$rs mysql_query($tabla,$link);
$num_total_registros mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas ceil($num_total_registros $TAMANO_PAGINA);


$tabla mysql_query('SELECT coches.*, ciudades.*, marcas.*, modelos.* FROM coches, ciudades, marcas, modelos WHERE coches.idciudad = ciudades.idciudad AND coches.idmarca = marcas.idmarca AND coches.idmodelo = modelos.idmodelo' $criterio " limit " $inicio "," $TAMANO_PAGINA);
while (
$registro mysql_fetch_array($tabla)) {
    
?>


<?php
$nombre 
$registro['imagen1']; 
?>

<tr>
<td><img style="border:1px solid #D5D5D5;" align=left height="70" width="80" vspace="4" hspace="10"src="/upload/<?php echo $nombre;?>" width="100" height="75"/></td><br>
<td><?php echo $registro['marca']; ?></td>
<td><?php echo $registro['modelo']; ?></td>
<td><?php echo $registro['ciudad']; ?></td> 
<td>Precio:<?php echo $registro['precio']; ?></td><br>
<td><?php
function cut_string($string$charlimit)
{
if(
substr($string,$charlimit-1,1) != ' ')
{
$string substr($string,'0',$charlimit);
$array explode(' ',$string);
array_pop($array);
$new_string implode(' ',$array);

return 
$new_string.' ...';
}
else
{
return 
substr($string,'0',$charlimit-1).' ...';
}
}

//Cadena con el texto de ejemplo
$cadena $registro['descripcion'];

//Llamada y salida de la función recortando el texto a 150 carácteres
echo cut_string($cadena50);
?></td>
<br>

</tr>

<?php

}
mysql_free_result($tabla);
mysql_close($link);

?>

<?php

//muestro los distintos índices de las páginas, si es que hay varias páginas
if ($total_paginas 1){
    for (
$i=1;$i<=$total_paginas;$i++){
       if (
$pagina == $i)
          
//si muestro el índice de la página actual, no coloco enlace
          
echo $pagina " ";
       else
          
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
          
echo "<a href='paginacion.php?pagina=" $i "&criterio=" $txt_criterio "'>" $i "</a> ";
    }


?>
Gracias de antemano!
  #2 (permalink)  
Antiguo 25/10/2010, 15:59
 
Fecha de Ingreso: octubre-2010
Mensajes: 19
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Crear página detalle de un anuncio

Hola,

La idea es crear otro script en php que reciba por get el id del anuncio a mostrar, y en la relación de anuncios(tu script actual) poner un enlace de este tipo

vista_detallada.php?id_anuncio=numero_que sea

Luego ya en esa página vista_detallada.php, recoges de base de datos usando el get que se pasa al script y lo montas todo parecido a como lo has hecho en tu primer script.

Un saludo.
  #3 (permalink)  
Antiguo 25/10/2010, 23:49
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: Crear página detalle de un anuncio

Muchas gracias yoseman1! parece bastante sencillo, lo intento y te cuento ok?

Muchas gracias!!
  #4 (permalink)  
Antiguo 26/10/2010, 09:34
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: Crear página detalle de un anuncio

ufff...lo he intentado pero creo que no lo entiendo, no consigo que salga lo que necesito...
La URL si que me la pasa bien pero me sigue mostrando lo mismo que en la página anterior...

Código index.php:

Código PHP:
<?php

//Conexion con la base
$link mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches",$link);



//Limito la busqueda
$TAMANO_PAGINA 10;

//examino la página a mostrar y el inicio del registro a mostrar
$pagina $_GET["pagina"];
if (!
$pagina) {
    
$inicio 0;
    
$pagina=1;
}
else {
    
$inicio = ($pagina 1) * $TAMANO_PAGINA;
}


//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$tabla "select * from coches " $criterio;
$rs mysql_query($tabla,$link);
$num_total_registros mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas ceil($num_total_registros $TAMANO_PAGINA);


$tabla mysql_query('SELECT coches.*, ciudades.*, marcas.*, modelos.* FROM coches, ciudades, marcas, modelos WHERE coches.idciudad = ciudades.idciudad AND coches.idmarca = marcas.idmarca AND coches.idmodelo = modelos.idmodelo' $criterio " limit " $inicio "," $TAMANO_PAGINA);
while (
$registro mysql_fetch_array($tabla)) {
    
?>


<?php
$nombre 
$registro['imagen1']; 
$id $registro['id']; 
?>

<tr>
<td><img style="border:1px solid #D5D5D5;" align=left height="70" width="80" vspace="4" hspace="10"src="/upload/<?php echo $nombre;?>" width="100" height="75"/></td><br>
<A class="LINKAZUL" HREF="vista_detallada.php?id_anuncio=<?php echo $id;?>">Coches de segunda mano</A>
<td><?php echo $registro['marca']; ?></td>
<td><?php echo $registro['modelo']; ?></td>
<td><?php echo $registro['ciudad']; ?></td> 
<td>Precio:<?php echo $registro['precio']; ?></td><br>
<td><?php
function cut_string($string$charlimit)
{
if(
substr($string,$charlimit-1,1) != ' ')
{
$string substr($string,'0',$charlimit);
$array explode(' ',$string);
array_pop($array);
$new_string implode(' ',$array);

return 
$new_string.' ...';
}
else
{
return 
substr($string,'0',$charlimit-1).' ...';
}
}

//Cadena con el texto de ejemplo
$cadena $registro['descripcion'];

//Llamada y salida de la función recortando el texto a 150 carácteres
echo cut_string($cadena50);
?></td>
<br><br><br>

</tr>

<?php

}
mysql_free_result($tabla);
mysql_close($link);

?>

<?php

//muestro los distintos índices de las páginas, si es que hay varias páginas
if ($total_paginas 1){
    for (
$i=1;$i<=$total_paginas;$i++){
       if (
$pagina == $i)
          
//si muestro el índice de la página actual, no coloco enlace
          
echo $pagina " ";
       else
          
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
          
echo "<a href='paginacion.php?pagina=" $i "&criterio=" $txt_criterio "'>" $i "</a> ";
    }


?>
Supongo que el problema está aquí, que no le digo que anuncio en concreto tiene que coger:

Código PHP:
<?php

//Conexion con la base
$link mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches",$link);

$id $_GET['id'];

//Saco los datos de la base de datos
$tabla mysql_query('SELECT coches.*, ciudades.*, marcas.*, modelos.* FROM coches, ciudades, marcas, modelos WHERE coches.idciudad = ciudades.idciudad AND coches.idmarca = marcas.idmarca AND coches.idmodelo = modelos.idmodelo');
while (
$registro mysql_fetch_array($tabla)) {
    
?>


<?php
$nombre 
$registro['imagen1']; 
?>

<tr>
<td><img style="border:1px solid #D5D5D5;" align=left height="70" width="80" vspace="4" hspace="10"src="/upload/<?php echo $nombre;?>" width="100" height="75"/></td><br>
<td><?php echo $registro['marca']; ?></td>
<td><?php echo $registro['modelo']; ?></td>
<td><?php echo $registro['ciudad']; ?></td> 
<td>Precio:<?php echo $registro['precio']; ?></td><br>
<td>
<td><?php echo $registro['descripcion']; ?></td>


<?php

}
mysql_free_result($tabla);
mysql_close();

?>
Espero que me podáis ayudar...estaré muy agradecido!
  #5 (permalink)  
Antiguo 26/10/2010, 09:46
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 8 meses
Puntos: 7
Respuesta: Crear página detalle de un anuncio

hola que tal una pregunta que es $criterio?

$tabla = "select * from coches " . $criterio;
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #6 (permalink)  
Antiguo 26/10/2010, 09:55
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: Crear página detalle de un anuncio

Mejor puedes verlo directamente aquí, te lo explicará mejor!

Por cierto, me podrías ayudar con el problema que he mencionado anteriormente?
  #7 (permalink)  
Antiguo 26/10/2010, 13:02
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: Crear página detalle de un anuncio

Ya está solucionado amigos, era cuestión de añadir en el where de la base de datos esto: id = '$id_anuncio', quedando el código final así:

Código PHP:
<?php

//Conexion con la base
$link mysql_connect("localhost","","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("ernesto_coches",$link);

//Saco los datos de la base de datos
$tabla mysql_query("SELECT coches.*, ciudades.*, marcas.*, modelos.* FROM coches, ciudades, marcas, modelos WHERE coches.idciudad = ciudades.idciudad AND coches.idmarca = marcas.idmarca AND coches.idmodelo = modelos.idmodelo AND id ='$id_anuncio'");
while (
$registro mysql_fetch_array($tabla)) {
    
?>


<?php
$nombre 
$registro['imagen1']; 
?>

<tr>
<td><img style="border:1px solid #D5D5D5;" align=left height="70" width="80" vspace="4" hspace="10"src="/upload/<?php echo $nombre;?>" width="100" height="75"/></td><br>
<td><?php echo $registro['marca']; ?></td>
<td><?php echo $registro['modelo']; ?></td>
<td><?php echo $registro['ciudad']; ?></td> 
<td>Precio:<?php echo $registro['precio']; ?></td><br>
<td>
<td><?php echo $registro['descripcion']; ?></td>
espero que les sirva!

Etiquetas: detalle, anuncios
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 22:54.