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 avec inner join


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut Requête avec inner join
    bonjour, voila j'ai deux tables imprimante(id_imprimante,nom_imprimante,#id_serie)
    serie(id_serie,nom_serie)
    les deux sont reliées

    je veux afficher le liste des imprimantes de la série. Voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liste_series = mysql_query('SELECT nom_imprimante FROM imprimante inner join serie on id_serie.serie  = id_serie.imprimante WHERE id_serie = '.$ref['id_serie'])
    mais j'ai dû faire une erreur car il affiche toute la liste des noms des imprimantes plutôt que la liste des noms des imprimantes de la série. Pouvez-vous m'aidez.

    Voici la page entière si cela peut vous aider :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
    include("../../../include/session.php");
     
     
    $description = "";
    $keywords = "";
    $subject = "";
    $title = "";
    $fakea = "";
    $menu = true;
     
    $body = '';
     
    $liste_ref = mysql_query('SELECT * FROM serie');
     
    while( $ref = mysql_fetch_array($liste_ref) )
    {
     
    $body.='<div class="listeManga">
    	<div class="listeMangaNom">';
     
    		// strtolower($variable) = renvoi le contenu de "variable" en minuscule
    		$body.='<a href="'.strtolower($ref['nom_serie']).'">'.$ref['nom_serie'].'</a>
     
    	</div>
    	<table class="listeMangaTableau">
    		<tr>
    					<td><div class="Image"><img src="../images/serie/'.strtolower($ref['nom_serie']).'.gif"></div></td>
    		
    			<td>
    				<div class="Donnees">
    					<div class="Source">
    				
    						<b>Type:</b>'.$ref['nom_serie'].'<br />
    						<b>Serie:</b>';
    						$liste_series = mysql_query('SELECT nom_imprimante FROM imprimante inner join serie on id_serie.serie  = id_serie.imprimante WHERE id_serie = '.$ref['id_serie']);
     
    						while( $ref = mysql_fetch_array($liste_series) )
    						{
    							$body.=' ['.$ref['nom_imprimante'].']';
    						}
     
    						$body.='
    					</div>
    				</div>
    			</td>
    		</tr>
    	</table>
    </div>';
    }
    include("../../../include/base.php");
    ?>

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonsoir,
    vous avez déjà l'id de la série, donc un SELECT sur une table fera l'affaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = 'SELECT `nom_imprimante` FROM `imprimante` WHERE `#id_serie` = '.$ref['id_serie'];
    Si vous aviez seulement le nom de la série, je comprendrai votre jointure.

    Cordialement,
    DaRiaN.

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut bonjour mais voila il y a un erreur
    voici le code que j'ai mis avec la ligne que tu as donné :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
    include("../../../include/session.php");
     
     
    $description = "";
    $keywords = "";
    $subject = "";
    $title = "";
    $fakea = "";
    $menu = true;
     
    $body = '';
     
    $liste_ref = mysql_query('SELECT * FROM serie');
     
    while( $ref = mysql_fetch_array($liste_ref) )
    {
     
    $body.='<div class="listeManga">
    	<div class="listeMangaNom">';
     
    		// strtolower($variable) = renvoi le contenu de "variable" en minuscule
    		$body.='<a href="'.strtolower($ref['nom_serie']).'">'.$ref['nom_serie'].'</a>
     
    	</div>
    	<table class="listeMangaTableau">
    		<tr>
    					<td><div class="Image"><img src="../images/serie/'.strtolower($ref['nom_serie']).'.gif"></div></td>
    		
    			<td>
    				<div class="Donnees">
    					<div class="Source">
    				
    						<b>Type:</b>'.$ref['nom_serie'].'<br />
    						<b>Serie:</b>';
    						$liste_series = ('SELECT `nom_imprimante` FROM `imprimante` WHERE `#id_serie` = '.$ref['id_serie']);
     
    						while( $ref = mysql_fetch_array($liste_series) )
    						{
    							$body.=' ['.$ref['nom_imprimante'].']';
    						}
     
    						$body.='
    					</div>
    				</div>
    			</td>
    		</tr>
    	</table>
    </div>';
    }
    include("../../../include/base.php");
    ?>
    mais il y a une erreur qui apparait:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\suncopy\catalogue\brother\jet d'encre\index.php on line 38

  4. #4
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut bonjour voila petit erreur j avance trop vite
    L'autre message est toujours d'actualité mais avant j'ai une question, j'ai voulu aller trop vite voila mon mcd:

    et voila je voudrais afficher la liste des typseries en fonction de la marque et du serie on m'a dit que pour avoir cette liste je devais relier les deux tables marque et serie et j'obtiendrai la réponse mais je ne vois pas trop comment je dois faire.
    aidez moi.c est urgent.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Vous parlez d'imprimante, puis d'anime/manga... c'est à ni rien comprendre!

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
    include("../../../include/session.php");
     
     
    $description = "";
    $keywords = "";
    $subject = "";
    $title = "";
    $fakea = "";
    $menu = true;
     
    $body = '';
     
    $liste_ref = mysql_query('SELECT * FROM serie') or die(mysql_error());
     
    while( $ref = mysql_fetch_array($liste_ref) )
    {
     
    $body.='<div class="listeManga">
    	<div class="listeMangaNom">';
     
    		// strtolower($variable) = renvoi le contenu de "variable" en minuscule
    		$body.='<a href="'.strtolower($ref['nom_serie']).'">'.$ref['nom_serie'].'</a>
     
    	</div>
    	<table class="listeMangaTableau">
    		<tr>
    					<td><div class="Image"><img src="../images/serie/'.strtolower($ref['nom_serie']).'.gif"></div></td>
    		
    			<td>
    				<div class="Donnees">
    					<div class="Source">
    				
    						<b>Type:</b>'.$ref['nom_serie'].'<br />
    						<b>Serie:</b>';
    						$liste_series = mysql_query('SELECT `nom_imprimante` FROM `imprimante` WHERE `#id_serie` = '.$ref['id_serie']) or die(mysql_error());
     
    						while( $ref = mysql_fetch_array($liste_series) )
    						{
    							$body.=' ['.$ref['nom_imprimante'].']';
    						}
     
    						$body.='
    					</div>
    				</div>
    			</td>
    		</tr>
    	</table>
    </div>';
    }
    include("../../../include/base.php");
    ?>

  6. #6
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut merci encore mais..
    merci encore de me répondre oui effectivement mais classe parle de manga mais c est seulement car j avais copier une page d'un ancien site.je vais les renommer de t inquiète pas.mais j ai trouver un erreur quand je met le code il écrit ceci:

    Champ '#id_serie' inconnu dans where clause

    serait tu pourquoi?

Discussions similaires

  1. Requête update avec inner join
    Par mattmax dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 23/05/2013, 14h53
  2. [HQL] Requête avec inner join
    Par Malatok dans le forum Hibernate
    Réponses: 8
    Dernier message: 03/10/2011, 17h52
  3. Ma requête avec INNER JOIN
    Par vocal94130 dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/08/2010, 09h23
  4. [Access] Problème dans une requête SQL avec INNER JOIN ?
    Par bds2006 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/06/2006, 10h57
  5. requête avec inner join ?
    Par Melvine dans le forum Oracle
    Réponses: 5
    Dernier message: 30/03/2006, 09h16

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