1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Tutorial Web de Bienes Raices o Inmobiliarias PHP y MySQL

Tema en 'Tutoriales Desarrollo Web' iniciado por elQuique, 22 Feb 2007.

  1. elQuique

    elQuique Usuario activo

    Vas más rápido que yo para responder, eso es bueno me alegra que avances, eso muestra que no te quedas esperando y sigues intentando, a mi forma de ver es la mejor manera de aprender y de ese error ya no te olvidas más :p.

    Es que ando medio liado estos días pero cualquier cosa pregunta que me doy siempre una vuelta por el foro.
     
  2. maitzina

    maitzina Nuevo usuario

    hola de nuevo!
    ya he terminado la entrega 8 y ya he probado a insertar datos (además de en la tabla ciudades) también en la tabla propiedades (con un nuevo archivo llamado propedades.php). Mi problema es que no sé cómo modificar ese archivo en dreamweaver y poner un formulario que contenga varios campos de texto para rellenar por ejemplo los siguientes campos de la tabla propiedades: titulo, idciudad y precio. La idea es que una persona que trabaje en una inmobiliaria pueda meter nuevos registros en la base de datos "inmobiliaria" desde Internet (porque no sabrá nada de php y mysql).

    Gracias!!
     
  3. maitzina

    maitzina Nuevo usuario

    ya he conseguido hacerlo. Solamente tenía que hacer una tabla dinámica conectada a la tabla de mi base de datos. Estoy intentando hacer una página como la de las librerías on line. También he conseguido que se vean las fotos de los libros buscados. Ahora lo que me gustaría hacer es que al clicar en cada una de las fotos se abra una nueva página con más información sobre el libro al que se refiere la foto. ¿Alguien sabe que código debo poner y dónde?

    Muchas gracias!
     
  4. elQuique

    elQuique Usuario activo

    Debes hacer un link html a la nueva página.

    No busques un código para copiar, entiende como son las cosas y hazlas.
     
  5. maitzina

    maitzina Nuevo usuario

    Hola, había intentado con esto:

    <td><a href="ok.php"><img src="<?php echo $registro['foto']; ?>" border="0" /></a></td>

    pero así todas las imágenes me abren la página ok.php. No sé cómo puedo hacer para que cada imagen abra una página diferente. Seguiré intentándolo...
     
  6. elQuique

    elQuique Usuario activo

    Si llamas a ok.php obvio que se abren en ok.php no ?

    Igualmente no se que hacen esos <td>, las tablas no se utilizan más para diseñar.
     
  7. maitzina

    maitzina Nuevo usuario

    <!--quoteo(post=372591:date=May 25 2009, 01:59 AM:name=elQuique)--><div class='quotetop'>CITA(elQuique @ May 25 2009, 01:59 AM) [snapback]372591[/snapback]</div><div class='quotemain'><!--quotec-->
    Si llamas a ok.php obvio que se abren en ok.php no ?

    Igualmente no se que hacen esos <td>, las tablas no se utilizan más para diseñar.
    <!--QuoteEnd--></div><!--QuoteEEnd-->


    Hola de nuevo... A ver si me explico. He seguido tu tutorial de Bienes raices y para seguir practicando me estoy haciendo una librería on line ficticia. Sé que no se usan tablas sino divs pero ahora eso no me importa porque como ya he dicho es una página ficticia.
    El código es:
    <?php
    $conexion = mysql_connect('localhost', 'root', 'root');
    mysql_select_db('mercadillo');
    ?>
    <html>
    <head>
    <title>Reporte de libros</title>
    </head>
    <body>
    <h1>Tutorial 7 con foto </h1>
    <form name="form1" method="post" action="listado7.php">
    <label>Título:
    <input type="text" name="txtBusqueda" id="txtBusqueda">
    Género:
    <select name="selCiudad" id="selCiudad">
    <option value="-1" selected>Todos</option>
    <?php
    $tablagenero = mysql_query("SELECT * FROM genero ORDER BY genero ASC");
    while ($registrociudad = mysql_fetch_array($tablagenero)) {
    ?>
    <option value="<?php echo $registrociudad['idgenero']; ?>"><?php echo $registrociudad['genero']; ?></option>
    <?php
    } // termina la zona de repeticion
    mysql_free_result($tablagenero); // se libera la memoria usada por la tabla
    ?>
    </select>
    </label>
    <input type="submit" name="cmdBuscar" id="cmdBuscar" value="IR">
    </form>
    <table border="1">
    <tr>
    <td>ID libro </td>
    <td>titulo</td>
    <td>autor</td>
    <td>id genero</td>
    <td>precio</td>
    <td>foto</td>
    </tr>
    <?php
    $sql = "SELECT libros.*, genero.* FROM libros, genero WHERE libros.idgenero = genero.idgenero ";
    if (isset($_POST['txtBusqueda'])) {
    $sql .= " AND libros.titulo LIKE '%" . $_POST['txtBusqueda'] . "%' ";
    if (intval($_POST['selCiudad']) > 0) {
    $sql .= " AND libros.idgenero = '" . intval($_POST['selCiudad']) . "'";
    }
    }
    $sql .= " ORDER BY libros.idlibro ASC";
    $tabla = mysql_query($sql);
    while ($registro = mysql_fetch_array($tabla)) {
    ?>
    <tr>
    <td><?php echo $registro['idlibro']; ?></td>
    <td><?php echo $registro['titulo']; ?></td>
    <td><?php echo $registro['autor']; ?></td>
    <td><?php echo $registro['idgenero']; ?></td>
    <td><?php echo $registro['precio']; ?></td>
    <td><img src="<?php echo $registro['foto']; ?>" border="0" /></a></td>
    </tr>
    <?php
    }
    mysql_free_result($tabla);
    mysql_close($conexion);
    ?>
    </table>
    </body>
    </html>


    A tu tutorial 7 le he añadido la opción de poner imágenes y como quiero seguir avanzando estoy intentado que cada imagen que aparezca después de la búsqueda enlace a una página distinta, pero como la única línea de código donde se hace referencia a las imágenes es esta:
    <td><img src="<?php echo $registro['foto']; ?>" border="0" /></a></td>

    no sé como hacer. Igual estoy pidiendo demasiado pero como lo he visto en las librería on line, pensé que sería cuestión de modificar un poco el código que ya tengo. Gracias de todas formas. :rolleyes:
     
  8. maitzina

    maitzina Nuevo usuario

    ya lo he averiguado. Por si a alguien le sirve, el código correcto es:
    <td><a href="<?php echo $registro["enlace"];?>"><img src="<?php echo $registro['foto']; ?>" border="0" /></a></td>.

    En la base de datos escribres las distintas direcciones a donde quieres que lleve cada foto (yo he creado un campo llamado en lace y otro foto).

    Saludos...
     
  9. elQuique

    elQuique Usuario activo

    gracias por publicar la respuesta :)
     
  10. alquila

    alquila Guest

    Hola el Quique!

    Solo decirte que un tutorial increible, estoy intentando crear una web de anuncios de pisos en alquiler y me he encontrado con tu tutorial. He aprendido más php y mysql con este tutorial que en un mes buscando por la red.

    Sería fantástico que profundizases más en el tema de crear la web inmobiliaria ya que si son tutoriales como los anteriores serán la mayor ayuda para crear una web dinámica que haya visto en toda la red.

    Hasta entonces gracias por tu tutorial!
     
  11. elQuique

    elQuique Usuario activo

    Gracias por tus palabras alquila, me alegro que sirva el tutorial. Y tengo pendiente continuarlo pero estoy ajustado de tiempos, igualmente no lo olvido :)
     
  12. elQuique

    elQuique Usuario activo

    Moví tu post porque si no tiene que ver con este tutorial mejor no confundir: <a href="http://www.forocreativo.net/ipb/No-entiendo-tutorial-t38535.html" target="_blank">http://www.forocreativo.net/ipb/No-entiend...ial-t38535.html</a>
     
  13. alquila

    alquila Guest

    Hola Quique,

    Te escribo porque ya he creado un formulario con todos los campos necesarios para insertar todo lo que quiero sobre una web inmobiliaria siguiendo tu totorial y con ayuda de foros del web.
    Pero ahora e me ha presentado un problema el cual no puedo solucionar...
    Estoy creando un formulario de busqueda para mi web inmobiliaria y no me funciona al 100 x 100.
    Te dejo el código y te agradecería eternamente si me pudieses ayudar.
    El proble es que es un formulario de dos campos Tipo de Inmueble y Ciudad, el que esta primero me funciona a la perfección, es decir el que busca el tipo de inmueble pero el que se encarga de la ciudad no me funciona. Creo que el problema esta en este trozo de código:

    if (intval($_POST['ciudad']) > 0)
    $sql .= " AND propiedades.idciudad = '" . intval($_POST['ciudad']) . "'";

    Solo me funciona el que ponga e primer lugar, pero el que está en segundo lugar que en este caso es la ciudad no me funciona.
    Si no te es mucha molestia me ayudarías muchísimo!
    Te dejo el código completo por si lo necesitas.

    Codigo php para formulario de busqueda:



    <?php
    $conexion = mysql_connect('localhost', '', '');
    mysql_select_db('');
    ?>
    <html>
    <head>
    <title>Reporte de Propiedades</title>
    </head>
    <body>
    <h1>B&uacute;squeda de Propiedades</h1>

    <form name="form1" method="post" action="Busqueda.php">
    <label>Tipo de vivienda:<br />
    <select name="tipovivienda" id="tipovivienda">
    <option value="0">--Escoja tipo alquiler--</option>
    <?php
    $tablavivienda = mysql_query("SELECT * FROM vivienda ORDER BY id ASC"); // Seleccionamos las ciudades de la tabla ciudades
    while ($registrovivienda = mysql_fetch_array($tablavivienda)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
    ?>
    <option value="<?php echo $registrovivienda['id']; ?>"><?php echo $registrovivienda['tipo']; ?></option>
    <?php
    } // termina la zona de repeticion
    mysql_free_result($tablavivienda); // se libera la memoria usada por la tabla
    ?>
    </select>
    <br>
    </label>
    <label>Ciudad:<br />
    <select name="ciudad" id="ciudad">
    <option value="0">---Escoja la ciudad---</option>
    <?php
    $tablaciudades = mysql_query("SELECT * FROM ciudades ORDER BY nombre ASC"); // Seleccionamos las ciudades de la tabla ciudades
    while ($registrociudad = mysql_fetch_array($tablaciudades)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
    ?>
    <option value="<?php echo $registrociudad['id']; ?>"><?php echo $registrociudad['nombre']; ?></option>
    <?php
    } // termina la zona de repeticion
    mysql_free_result($tablaciudades); // se libera la memoria usada por la tabla
    ?>
    </select>
    </label>
    <input type="submit" name="cmdBuscar" id="cmdBuscar" value="IR">
    </form>
    <table border="1">
    <tr>
    <td>Referencia</td>
    <td>Foto</td>
    <td>Tipo Vivienda</td>
    <td>Ciudad</td>
    <td>Población</td>
    <td>Precio</td>
    <td>Descripción</td>
    </tr>
    <?php
    $sql = "SELECT propiedades.*, ciudades.*, vivienda.* FROM propiedades, ciudades, vivienda WHERE propiedades.idciudad = ciudades.id && propiedades.idvivienda = vivienda.id ";
    if (isset($_POST['tipovivienda']) > 0) {
    $sql .= " AND propiedades.idvivienda = '" . ($_POST['tipovivienda']) . "'";
    if (intval($_POST['ciudad']) > 0)
    $sql .= " AND propiedades.idciudad = '" . intval($_POST['ciudad']) . "'";
    }
    }
    $sql .= " ORDER BY referencia ASC";
    $tabla = mysql_query($sql);
    while ($registro = mysql_fetch_array($tabla)) {
    ?>
    <tr>
    <td><?php echo $registro['referencia']; ?></td>
    <td><img src="ver.php?referencia=<?php echo $registro['referencia']; ?>" width="200" height="150" alt="" /></td>
    <td><?php echo $registro['tipo']; ?></td>
    <td><?php echo $registro['nombre']; ?></td>
    <td><?php echo $registro['poblacion']; ?></td>
    <td><?php echo $registro['precio']; ?></td>
    <td><?php echo $registro['descripcion']; ?></td>
    </tr>
    <?php
    }
    mysql_free_result($tabla);
    mysql_close($conexion);
    ?>
    </table>
    </body>
    </html>



    Gracias!
     
  14. MarcelaP

    MarcelaP Justo a mi me tocó ser yo?

    Ahora que tengo tiempo libre, estoy tratando de ponerme al día con la tan postergada tarea de aprender PHP, así que empecé por rehacer estos tutoriales, pero esta vez viéndolos más fondo, buscando info complementaria, y hasta leyendo las 14 páginas de este post.
    De todo esto tengo (como mínimo) dos dudas que me gustaría aclarar:

    1) Se me complicó bastante seguir la lógica del tuto cuando simplificaste el código y agregaste la variable $sql, una parte de mis dudas está explicada en algún lado de este post, pero me gustaría saber porqué desapareció la parte de ELSE y porqué a pesar de desaparecer sigue funcionando, no entiendo por qué cosa se reemplazó.

    2) En la última entrega pones "@mysql_query("INSERT INTO ciudades blabla...", para qué sirve el arroba?

    Edito: tengo una tercera duda, tal vez tonta, pero duda al fin y al cabo:

    3) En la 4º entrega, cuando hacés el SELECT usas comillas simples, pero en las subsiguientes entregas estas se convierten en dobles. Hay diferencia entre las comillas?

    Y no me quiero despedir sin decir QUEREMOS MAS!!
     
  15. jclaguna

    jclaguna Nuevo usuario

    Hola elQuique.

    Ante dodo felicitarte por tu tutorial, en mi opinión es de lo mejor que hay en la red para iniciarse en MySQL y PHP en español (así lo demuestran las visitas).

    Por mi parte ya he terminado con los ocho magnífias entregas del tutorial, pero en la 7ª me asalta una duda cuando analizo el código.

    Utilizas la variable $sql para almacenar "trozos" de código que no cambian:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->$sql = "SELECT propiedades.*, ciudades.* FROM propiedades, ciudades WHERE propiedades.idciudad = ciudades.id "<!--c2--></div><!--ec2-->


    Lo que no entiendo es porque luego haces esto:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->$sql .= " ORDER BY ciudades.nombre ASC"<!--c2--></div><!--ec2-->


    Me pregunto porque no se puede hacer algo así desde el principio:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->$sql = "SELECT propiedades.*, ciudades.* FROM propiedades, ciudades WHERE propiedades.idciudad = ciudades.id ORDER BY ciudades.nombre ASC"<!--c2--></div><!--ec2-->

    Lo he probado y efectivamente, no funciona, pero no entiendo porque.


    Gracias por tu tiempo y dedicación.

    Un saludo.




    [Edito]

    Vale, creo que ya entiendo porque... corrígeme si me equivoco:

    El orden la sentencia SQL siempre debe ser el mismo, con lo que la instrucción ORDER debe ser el último comando en la consulta.

    ¿Es así?

    [Editado ]
     
  16. elQuique

    elQuique Usuario activo

    jclaguna, en realidad si se puede hacer todo junto, si pones todo en una línea va bien.

    Yo lo hago así por costumbre y prolijidad, trato de separar el ORDER ya que suelo ordenarlo de diferentes formas con un IF, por tanto hago algo así:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    $sql = "SELECT propiedades.*, ciudades.* FROM propiedades, ciudades WHERE propiedades.idciudad = ciudades.id "
    <!--c2--></div><!--ec2-->

    eso queda igual siempre y luego con un IF decido el orden, tomando un parametro por ejemplo:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    if ($orden = 'nombre') {
    $sql.= " ORDER BY ciudades.nombre ASC";
    } else {
    $sql.= " ORDER BY ciudades.id ASC";
    }
    <!--c2--></div><!--ec2-->

    o sea que ordenará por nombre o número de ciudad según el caso :)
     
  17. jclaguna

    jclaguna Nuevo usuario

    GRANDE! :)

    Es sencillamente genial, cada vez me gusta más el PHP y MySQL...

    Gracias por tu respuesta elQuique, y decirte que gracias a tu tutorial me he decidido a hacer una web con base de datos MySQL para mi prima, a ver si soy capaz... Si la termino, no dudes en "echarte la culpa", ya que lo que he aprendido te lo debo a ti... 8-D


    Gracias de nuevo.

    Un saludo.
     
  18. elQuique

    elQuique Usuario activo

    Me alegro que sirva el tuto :)

    Cualquier duda si es específica de este tutorial la haces aquí mismo, y si no, crea un nuevo post para no enrredar este ;)
     
  19. jclaguna

    jclaguna Nuevo usuario

    Buenas, al final sí que tengo que consultar porque me estoy volviendo loco :sm021:

    A ver si alguien ve algún error en el siguiente código.

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->

    if (isset($_POST['nombre'])) {// Si venimos desde el formulario, entonces
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nom=$_GET['nombre'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ape1=$_GET['ap1'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ape2=$_GET['ap2'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nif=$_GET['nif'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fechanac=$_GET['nacim'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$estadoc=$_GET['esciv'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$telf=$_GET['tel'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$email=$_GET['mail'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$pais=$_GET['pais'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$desti=$_GET['dest'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tipv=$_GET['tipo'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$habit=$_GET['hab'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$gar=$_GET['gara'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tras=$_GET['trast'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$plazo=$_GET['plaz'];
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql_query("INSERT INTO inquilinos (nombre,apellido1,apellido2,nif,nacimiento,escivil,telef,email,pais,destino,tipov,hab,garaje,trastero,plazo) VALUES ('$nom','$ape1','$ape2','$nif','$fechanac','$estadoc','$telf','$email','$pais','$desti','$tipv','$habit','$gar','$tras','$plazo')",$link);

    ...

    <!--c2--></div><!--ec2-->

    Por supuesto más abajo está el formulario, pero creo que el problema está en la consulta, no sé si estoy dando el trato correcto a las variables.
    La cuestión es que no consigo que grabe los registros en la DB. Solo he logrado que me genere registros vacíos.


    ++ACLARACION++

    No sé porque en el código que he pegado sale el caracter "&#40," en lugar de un paréntesis abriendo "(" que es lo que tengo yo en mi código original. Que conste que en mi archivo hay una parentesis :) .

    +/ACLARACION++


    Help please...


    Saludos.
     
  20. jclaguna

    jclaguna Nuevo usuario

    Hola.

    Caso omiso al mensaje anterior, ya está resuelto. Como viene siendo habitual, al final era un error de sintaxis...

    ##~€~#:p dichosas comillas...!!!

    SAludos...!!!
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·