Site immobilier

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Site immobilier

Re: Site immobilier

par padawanphp » 12 oct. 2012, 13:58

Et oui un site immobilier c'est pas des plus facile à mettre en oeuvre et à gérer. Moi même j'ai un petite site immo et je me suis arraché les cheveux un bon moment pour que tout marche. On retrouve en effet beaucoup de fonctionnalité dessus : annuaire, module de vente, blog, articles, etc.. etc... Et c'est en parcourant les différents sites immo et post comme celui ci en php/sql que moi aussi j'améliore mon site.
Bonne chance à tous et merci pour l'aide.

Re: Site immobilier

par lola34 » 26 juin 2012, 12:18

Bonjour à tous!

Je tenais à vous remercier pour ces posts, ils sont très utiles pour les débutants comme moi ;-)
En tout cas, même après 2ans, on s'en inspire encore.

Re: Site immobilier

par AB » 25 mai 2010, 03:25

ORDER BY, si tu traduis en français ça donne quelque chose comme "ordonner par" donc la requête attend que tu lui donne le paramètre logique suivant qui est le même qui te viendrais à l'esprit si tu poursuivais cette phrase : ...ordonner par quoi ? Et le quoi est le nom de la colonne sur laquelle tu veux faire ton tri. Après avoir donné ce nom tu donne l'ordre du tri.

Sinon pour ce que je te disais plus haut ce n'est pas vraiment du code ou de la technique php mais simplement un principe d'organisation. Selon le modèle que tu choisis tu auras une souplesse d'évolution quasiment sans contrainte ou pas d'évolution possible sauf à refaire une grande partie du code.

Relis ce que je te disais plus haut. Ce n'est que de la logique.

Quand tout ton code sera fini terminé, tu fais comment si le client te demande :
<< - Oui mais aujourd'hui j'aimerais bien avoir plus de cinq images par maison. J'ai maintenant deux ou trois très gros biens et en fait il faudrait que je puisse mettre beaucoup plus, en fait je ne sais pas vraiment combien, c'est suivant les cas, donc en fait un nombre indéterminé de photos pour représenter chaque maison >>
Et là si tu n'as que ta table "maison" avec ses cinq champs réservés, tu te rend compte que tu as un très très très gros souci 8-|
Tu comprends ? Ta méthode est valable mais figée.

L'autre demande plus de travail lors de la conception de la structure des tables et des requêtes qui devront faire appel à des jointures (oui enfin c'est pas non plus compliqué dans le cas de ton sujet) mais en contre partie c'est beaucoup plus souple et tu n'aurait pas de limites concernant par exemple le nombre de photos par maison. Et même principe pour les prestations.

Donc si ton boss te jure devant tous les dieux réunis que jamais au grand jamais, il n'aura jamais non vraiment jamais besoin de plus de cinq photos par maison, tu peux faire simple et appliquer la méthode avec une seule table (tout en sachant qu'à moins de refaire un grosse partie du code, les possibilités sont figées, il faut insister sur ce point).

Ou alors tu peux lui dire "oui ça fait plus de travail de conception au départ mais en contre partie vous n'auriez pas de limites et donc de regrets en cas de nouveau besoin que vous n'avez pas prévu aujourd'hui"...

Donc voilà l'enjeu du problème et il faudrait bien étudier cette question avec l'entreprise pour laquelle tu travailles (ton client) avant d'aller plus loin. C'est ce qu'on appelle bien définir le cahier des charges.

Et si tu as compris les données du problème et que tu sais bien l'expliquer (je t'ai donné les exemples) tu auras déjà gagner pas mal de points sans avoir pondu une seule ligne de code. Lâches un peu ton clavier, c'est pas forcément du temps perdu :wink:

Re: Site immobilier

par languependue » 24 mai 2010, 23:41

Bonsoir,

Je comprend pas pourquoi pas plusieurs tables
Apres tout, j'ai une table pour chaque type de bien ( terrain, maisons, appartement, commerce...)

Donc je trouve sa logique d'avoir plusieurs tables.

Après
dunbar un ptit probleme :(

$sql = "SELECT id, ville, categorie, type, nbre_chambres, surface_sejour, surface_habitable, surface_terrain, type_cuisine, type_chauffage, prestation_1, prestation_2, prestation_3 FROM mais_vente order by desc
";


le order by me met une erreur...


Puis ensuite
Pour insere une photo de ma bdd

<?php

echo '<img src="/photo/'.$aze.jpg.'">';

?>

ne marche pas

Re: Site immobilier

par dunbar » 24 mai 2010, 23:10

Bonsoir ab.

je suis en stage dans une entreprise immobilière qui n'ont pas de site.
Donc je m'y colle.
Donc c'est bien un truc pro (pour reprendre le terme de AB :) .
Tu devrais suivre ces conseils quand-même.

Re: Site immobilier

par languependue » 24 mai 2010, 23:02

Bonsoir ab.

Non ce n'est pas a vocation professionnel
je suis en 1 année de bts informatique, et cette année, je suis en stage dans une entreprise immobilière qui n'ont pas de site.
Donc je m'y colle.

Le truc c'est que cette année en cour, c'est que on a vu le basic en php ( la connections, l'insertion, suppression, modification...)
On a fait très peut d'heures.

Donc s'attaquer a un site immobilier au début c'est assez complexe.

En plus, plus tard je voudrais plutôt m'orienter dans le design..

Voila bonne soirée
http://horws-studio.com

Re: Site immobilier

par AB » 24 mai 2010, 21:59

Sinon c'est à vocation professionnelle ce site ou un truc comme ça pour t'amuser ?

Parce que pour un truc pro tu parts sur de mauvaises bases :

Normalement il ne devrait pas y avoir plusieurs colonnes pour représenter un contenu de même nature.
Si une maison peut être représentée par plusieurs photos alors il ne faut pas faire plusieurs colonnes mais une table spécifique pour stocker les photos. Idem pour ta colonne "prestation".

Pourquoi ? parce que ça t'éviterais d'avoir des trous dans ta table pour les maisons n'ayant qu'une prestation (ou aucune) et pareil pour les photos.

Mais surtout le plus important c'est que ton code serait naturellement évolutif si tu avais trois tables distinctes, et tu n'aurais rien à modifier si par exemple un jour une maison avait plus de 5 photos ou plus de 3 prestations.

Alors qu'avec ton système, pour augmenter le nombre de photos ou de prestations tu devras non seulement recréer des colonnes dans ta table (qui créeront autant de trous pour les maisons ne le nécessitant pas) mais aussi, petit détail qui a son importance, refaire toutes tes requêtes et système de récupération des données.

A ta place, j'y réfléchirait plus de deux fois avant d'aller plus loin :wink:

Re: Site immobilier

par dunbar » 24 mai 2010, 20:28

Re: Site immobilier

par languependue » 24 mai 2010, 20:04

Juste une derniere question :^o

On fait comment pour l'habillage html
du detail...

donc des pages details

Re: Site immobilier

par dunbar » 24 mai 2010, 19:31

Merci Dunbar,

je met tout sur une meme page ou pas?

ou le lien je le met sur la page désirere... :lol:

je viens de la tester sa marche
Franchement je te dis merci

Tes un boss.
=D>
A toi de choisir :wink:

Re: Site immobilier

par languependue » 24 mai 2010, 19:23

Merci Dunbar,

je met tout sur une meme page ou pas?

ou le lien je le met sur la page désirere... :lol:

je viens de la tester sa marche
Franchement je te dis merci

Tes un boss.
=D>

Re: Site immobilier

par dunbar » 24 mai 2010, 19:18

Salut,

Voici se que nous voulions dire :)
D'abord tu récupère toutes tes annonces, puis le détail de celle choisie une manière de faire est celle-ci
<?php

$link = mysql_connect('localhost', '', ''); // Connexion à MySQL
mysql_select_db(''); // Sélection de la base camgirlz_camgirlz


$id = (isset($_GET['id']) ? $_GET['id'] : null);
$action = (isset($_GET['action']) ? mysql_real_escape_string($_GET['action']) : null);


switch ($action)
{
    case 'detail':
        //-->Suivant l'annonce choisie ont affiche le détail de celle-ci
        $sql = "SELECT  id, ville, categorie, type, nbre_chambres, surface_sejour, surface_terrain, type_cuisine, type_chauffage, prestation_1, prestation_2, prestation_3 FROM mais_vente WHERE id = '" .
            $id . "'
	";
        $req = mysql_query($sql) or die('Aucune donnée disponible pour cette annonce !' .
            $sql . '<br>' . mysql_error());

        $vente = mysql_fetch_array($req);
        echo 'La ville est: ' . $vente['ville'] . '<BR>';
        echo 'categorie est: ' . $vente['categorie'] . '<BR>';
        echo 'Le type est: ' . $vente['type'] . '<BR>';
        echo 'Le nbre_chambres est: ' . $vente['nbre_chambres'] . '<BR>';
        echo 'Le surface_sejour est: ' . $vente['surface_sejour'] . '<BR>';
        echo 'Le surface_terrain est: ' . $vente['surface_terrain'] . '<BR>';
        echo 'Le type cuisine est: ' . $vente['type_cuisine'] . '<BR>';
        echo 'Prestation 1: ' . $vente['prestation_1'] . '<BR>';
        echo 'Prestation 2: ' . $vente['prestation_2'] . '<BR>';
        echo 'Prestation 3: ' . $vente['prestation_3'] . '<BR>';
        echo 'Le type de  chauffage est: ' . $vente['type_chauffage'] . '<BR>';
        echo 'Le type de  chauffage est: ' . $vente['type_chauffage'] . '<BR>';
        break;

    default;

        //Ont séléctionne tout les annonces.

        $sql = "SELECT  id, ville, categorie, type, nbre_chambres, surface_sejour, surface_terrain, type_cuisine, type_chauffage, prestation_1, prestation_2, prestation_3 FROM mais_vente
	";
        $req = mysql_query($sql) or die('Aucune donnée disponible pour cette annonce !' .
            $sql . '<br>' . mysql_error());

        while ($vente = mysql_fetch_array($req))
        {
            ;
            echo 'La ville est: ' . $vente['ville'] . '</BR>';
            echo 'categorie est: ' . $vente['categorie'] . '</BR>';
            echo 'Le type est: ' . $vente['type'] . '</BR>';
            echo 'Le nbre_chambres est: ' . $vente['nbre_chambres'] . '</BR>';
            echo 'Le surface_sejour est: ' . $vente['surface_sejour'] . '</BR>';
            echo 'Le surface_terrain est: ' . $vente['surface_terrain'] . '</BR>';
            echo 'Le type cuisine est: ' . $vente['type_cuisine'] . '</BR>';
            echo 'Prestation 1: ' . $vente['prestation_1'] . '</BR>';
            echo 'Prestation 2: ' . $vente['prestation_2'] . '</BR>';
            echo 'Prestation 3: ' . $vente['prestation_3'] . '</BR>';
            echo 'Le type de  chauffage est: ' . $vente['type_chauffage'] . '</BR>';
            echo 'Le type de  chauffage est: ' . $vente['type_chauffage'] . '</BR>';
            echo '<BR></BR>';

            echo '<a href="' . $_SERVER['REQUEST_URI'] . '?action=detail&id=' . $vente['id'] .
                '">Détail</a>';
            echo '<HR>';
        }
        break;
}

?>

Re: Site immobilier

par languependue » 24 mai 2010, 18:58

VOila la table

Code : Tout sélectionner

-- phpMyAdmin SQL Dump -- version 3.2.0.1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Dim 23 Mai 2010 à 17:32 -- Version du serveur: 5.1.36 -- Version de PHP: 5.3.0 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Base de données: `root` -- -- -------------------------------------------------------- -- -- Structure de la table `mais_vente` -- CREATE TABLE IF NOT EXISTS `mais_vente` ( `id` tinyint(4) NOT NULL AUTO_INCREMENT, `reference` varchar(255) DEFAULT NULL, `categorie` varchar(255) DEFAULT NULL, `type` varchar(255) DEFAULT NULL, `surface_habitable` varchar(255) DEFAULT NULL, `nbre_chambres` varchar(255) DEFAULT NULL, `surface_sejour` varchar(255) DEFAULT NULL, `surface_terrain` varchar(255) DEFAULT NULL, `type_cuisine` varchar(255) DEFAULT NULL, `type_chauffage` varchar(255) DEFAULT NULL, `prestation_1` varchar(255) DEFAULT NULL, `prestation_2` varchar(255) DEFAULT NULL, `prestation_3` varchar(255) DEFAULT NULL, `titre_annonce` varchar(255) DEFAULT NULL, `annonce` longtext, `ville` varchar(255) DEFAULT NULL, `prix` varchar(255) DEFAULT NULL, `frais` varchar(255) DEFAULT NULL, `photo_1` varchar(255) DEFAULT NULL, `photo_2` varchar(255) DEFAULT NULL, `photo_3` varchar(255) DEFAULT NULL, `photo_4` varchar(255) DEFAULT NULL, `photo_5` varchar(255) DEFAULT NULL, UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ; -- -- Contenu de la table `mais_vente` -- INSERT INTO `mais_vente` (`id`, `reference`, `categorie`, `type`, `surface_habitable`, `nbre_chambres`, `surface_sejour`, `surface_terrain`, `type_cuisine`, `type_chauffage`, `prestation_1`, `prestation_2`, `prestation_3`, `titre_annonce`, `annonce`, `ville`, `prix`, `frais`, `photo_1`, `photo_2`, `photo_3`, `photo_4`, `photo_5`) VALUES (26, '666', 'Maison', 'Néo-bretonne', '200', '4', '25', '28', 'Aménagée', 'Sans chauffage', 'Vue mer', 'Vue mer', 'Proximité plages', 'Super', 'ahagaggag', 'Brest', '150000', 'Hors frais', '/photos/', '/photos/', '/photos/', '/photos/', '/photos/'), (28, '77777777777777777777', 'Maison', 'Maison', '80', '4', NULL, NULL, 'Non précisé', 'Sans chauffage', ' ', ' ', ' ', NULL, NULL, 'Guipavas', NULL, 'Non précisé', '/photos/image.jpg', '/photos/', '/photos/', '/photos/', '/photos/'), (29, '88888888', 'Maison', 'Maison', NULL, '1', NULL, NULL, 'Non précisé', 'Sans chauffage', ' ', ' ', ' ', NULL, NULL, 'wazzaaa', NULL, 'Non précisé', '/photos/', '/photos/', '/photos/', '/photos/', '/photos/'), (30, '88888888', 'Maison', 'Maison', NULL, '1', NULL, NULL, 'Non précisé', 'Sans chauffage', ' ', ' ', ' ', NULL, NULL, 'wazzaaa', NULL, 'Non précisé', '/photos/', '/photos/', '/photos/', '/photos/', '/photos/'), (31, '88888888', 'Maison', 'Maison', NULL, '1', NULL, NULL, 'Non précisé', 'Sans chauffage', ' ', ' ', ' ', NULL, NULL, 'wazzaaa', NULL, 'Non précisé', '/photos/', '/photos/', '/photos/', '/photos/', '/photos/'), (32, '88888888', 'Maison', 'Maison', NULL, '1', NULL, NULL, 'Non précisé', 'Sans chauffage', ' ', ' ', ' ', NULL, NULL, 'wazzaaa', NULL, 'Non précisé', '/photos/', '/photos/', '/photos/', '/photos/', '/photos/'), (33, '88888888', 'Maison', 'Maison', NULL, '1', NULL, NULL, 'Non précisé', 'Sans chauffage', ' ', ' ', ' ', NULL, NULL, 'wazzaaa', NULL, 'Non précisé', '/photos/', '/photos/', '/photos/', '/photos/', '/photos/'), (34, '88888888', 'Maison', 'Maison', NULL, '1', NULL, NULL, 'Non précisé', 'Sans chauffage', ' ', ' ', ' ', NULL, NULL, 'wazzaaa', NULL, 'Non précisé', '/photos/', '/photos/', '/photos/', '/photos/', '/photos/'), (35, '7489745', 'Maison', 'Maison', NULL, '1', NULL, NULL, 'Non précisé', 'Sans chauffage', ' ', ' ', ' ', NULL, NULL, 'wazzaaa', NULL, 'Non précisé', '/photos/', '/photos/', '/photos/', '/photos/', '/photos/');

Re: Site immobilier

par dunbar » 24 mai 2010, 18:54

Montre nous la table ou tu va chercher le bien (la maison)
Nous avons bien compris se que tu cherche a faire, mais je pense que tu ne comprend pas se que l'on te donne comme solution.

Re: Site immobilier

par languependue » 24 mai 2010, 18:52

Bonsoir
Mais je comprend pas pourquoi il faut une table détail.

Si si j'ai bien compris, il faut que je créer une table détails avec tout les donnée de toutes les tables?

Sans que je me répète
Je vous explique, j'affiche les une après les autres mes maisons
Je voudrais mettre un onglet pour chaque maison avec l'id adéquat.
Que quand je clique dessu sa m'oouvre une page avec tout les détails de la maisons choisit! :lol:

Merci