IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requête sur deux tables


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut Requête sur deux tables
    Bonjour,


    j'ai une base de donnees avec 2 tables : annonces_search et annonces_images



    1ere table "tables annonces_search" voici les champs :
    id_reg
    id_dep
    id_cat
    code_pos
    status
    type
    titre
    ann
    prix
    etat
    date
    id_compte
    photo
    video
    urg
    une



    2nd table "annonces_images" voici les champs :
    id_ima
    id_ann
    nom


    actuellement j'ai cela dans mon code ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query('SELECT * FROM PAG_annonces where type=1 order by id_ann desc limit 0,5');
    qui me sort les 5 dernières annonces EN TEXTE. Mais il me manque les images associées à ces annonces; en gros je souhaiterais rajouter ceci
    JOIN annonces_images where id_ann= id_ann de annonces_search

    afin que les images sortent avec les annonces mais je n'y arrive pas.
    si quelqu'un pouvait m'aider.

    merci


    ceci ne fonctionne pas !!!!!!!!!!!!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $reponse = $bdd->query('SELECT * FROM PAG_annonces LEFT JOIN ". PREFIX ."annonces_images o ON s.id_ann = o.id_ann where type=1 order by id_ann desc limit 0,5');

    *******************************

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    echo 'les 5 dernieres annonces'  ;
    try {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;            
        $bdd = new PDO('mysql:host=MON SERVEUR;dbname=MA DATABASE', 'LOGIN', 'MDP', $pdo_options); // selection de ma database                    
        $reponse = $bdd->query('SELECT * FROM PAG_annonces where type=1 order by id_ann desc limit 0,5');  // 5 dernieres annonces
        while ($donnees = $reponse->fetch()){
            echo utf8_encode ('    <a href="ann_page.php?id='.$donnees['id_ann'] . '" title="'.$donnees['titre'] .' a '.$donnees['ville'] .'">'.$donnees['titre'] .'<a/><br>');                                
        }
        $reponse->closeCursor();
    }
    catch(Exception $e){
        die('Erreur : '.$e->getMessage());
    }
    ?>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM annonces_search AS srch, annonces_images AS img WHERE srch.type=1 AND srch.id_ann = img.id_ann ORDER BY srch.id_ann DESC LIMIT 0,5

    Voir le SQL de A à Z sur les jointures.
    Dernière modification par Bovino ; 14/02/2014 à 07h51. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) pour activer la coloration syntaxique !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    Merci, je charge bien les photos :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM annonces_search AS srch, annonces_images AS img WHERE srch.type=1 AND srch.id_ann = img.id_ann ORDER BY srch.id_ann DESC LIMIT 0,5


    cependant si une annonce a plusieurs images (ex id_ann 1704), l'annonce se duplique a cause de id_ann dans annonces_images qui est identique:

    Table annonces_images

    id_ima id_ann nom
    6962 1704 2014/02/13/361dsm2729.jpg
    6963 1704 2014/02/13/asht3d9is1.jpg
    6964 1704 2014/02/13/9i8194329v.jpg
    6961 1703 2014/02/12/26h1mds464.jpg
    6959 1702 2014/02/11/j6fn3dd52e.jpg
    6957 1701 2014/02/11/dmt713d971.jpg
    6950 1698 2014/02/10/7b6ps3i747.jpg
    6942 1695 2014/02/06/57s133ods9.jpg
    6943 1695 2014/02/06/2bher4g2s4.jpg

    il me faudrait une limite du style s'il y a plusieurs id_ann identique dans la table annonces_images, il faut prendre que la premiere

    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 314
    Par défaut
    essaye un groupe by idannonce
    ou une limit 0,1

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    Bonjour,
    je suis désolé..... mais je n'y arrive toujours pas !

    Que je mette groupe by j'ai une erreur , si je mets join by idem

    Alors soit je les place au mauvais endroit, soit je suis une quiche....



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    echo '<span style="font:11pt Tahoma; padding-left: 10px;color:#CE0918"><u>Annonces d\'entreprises et de commerces à vendre:</u></span><br/><br/>'  ;
    try {
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;            
    	$bdd = new PDO('mysql:host=XXXXX;dbname=XXXX', 'XXXX', 'XXXX', $pdo_options); // selection de ma database
    	$reponse = $bdd->query('SELECT * FROM PAG_annonces_search where etat=2 order by id_ann desc limit 0,5'); // 5 dernieres annonces
    	while ($donnees = $reponse->fetch()){
    		echo utf8_encode ('<img src="images/fleche_FDC.gif" alt="commerce de '.$donnees['titre'] .' a vendre"> 
                       <a style="padding-left: '.$donnees['code_pos'] .'">'.$donnees['titre'] .'<a/>
    		   -<a style="padding-left: 5px;color:#000;text-decoration:none; font: 11px Tahoma;" href="ann_page.php?id='.$donnees['id_ann'].'">
                       <img src="images/vignettes/'.$donnees['nom'] .'"></a><br>'); 
    	}   
            $reponse->closeCursor();
    }
    catch(Exception $e){
    	die('Erreur : '.$e->getMessage());
    }
    ?>
    Si quelqu'un a une âme charitable, pour un pauvre desoeuvré
    Merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    s'il vous plait une petite aide :-(

Discussions similaires

  1. Aide pour une requête sur deux tables
    Par Andry dans le forum Développement
    Réponses: 2
    Dernier message: 05/11/2007, 07h14
  2. [Access] Fonction TOP dans une requête sur deux tables
    Par pc75 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/07/2007, 09h31
  3. Requête sur deux tables et réponses en colonnes
    Par grandoc dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/12/2006, 12h49
  4. Requête sur deux tables en même temps
    Par will89 dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/04/2006, 11h01
  5. Problème de requêtes sur deux tables
    Par Pymm dans le forum Access
    Réponses: 6
    Dernier message: 06/09/2005, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo