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 :

2 tables maitre détail


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : administrateur de base de données

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Par défaut 2 tables maitre détail
    Bonjour!
    Je suis nul en PHP et MySQL, je veut créer l'idée de maitre détail en php pour deux tables base de données mysql, tel que l'orsque je clique avec souris ou parcourir sur une ligne du première table affiche les lignes qui font correspond du 2 ème table.
    Comment faire pour résoudre ce problème et y-a-t-il une solution ou un script ?
    et merci beaucoup.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    On ne comprend pas ce que tu veux... et il manque des mots.
    Merci d'expliquer, avec un exemple un peu plus clair que "table1, table2".
    Dernière modification par Invité ; 30/10/2019 à 08h54.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    De ce que je comprends, il y a un tableau avec des boutons "détails" sur chaque ligne et quand on clique sur un bouton "Détails" ça affiche les infos liées à la ligne cliquée dans un 2e tableau (ou dans une autre page)
    Comme ce qu'on a dans un site de e-commerce : un tableau récapitulatif des commandes passées, et quand on sélectionne une commande, ça affiche les produits achetés dans cette commande.
    C'est ça ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : administrateur de base de données

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Par défaut toujours le meme broblème
    Bonjour,
    voici mon besoin présenté dan l'image exemple de pièce jointe. mais il faut présenter la 1ère table de base données qui contient "pompe à huile " sous forme d'une grid de données au lieu un combobox.
    l'orsque je clique avec souris ou parcourir sur les lignes du première table affiche les lignes qui font correspond du 2 ème table.
    Merci beaucoup pour votre attention.
    Images attachées Images attachées  

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    tu utilises un logiciel ??
    Lequel ?

    Sinon, c'est ton code qu'on voudrait voir !

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : administrateur de base de données

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Par défaut le meme problème
    bonjour,
    je veut réaliser ce besoin avec php et 02 table mysql dans une page .php
    merci beaucoup.

  7. #7
    Membre actif Avatar de abdennour bouaicha
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 98
    Par défaut
    la clé primaire de la 2e table doit être une clé étrangère chez table 1, puis en charge le contenu de table 2 par rapport a table 1 a l'aide d'ajax.

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : administrateur de base de données

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Par défaut toujours le meme broblème
    bonjour,
    ma base de données est bonne, j'ai fait le clés étrangères, mais j'ai pas pu appliquer ce besoin avec php, vous pouvez m'aider avec plus de détail ou avec un code source.
    Merci beaucoup pour votre attention.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu n'as pas compris comment fonctionne le forum.
    On n'est pas là pour écrire le code à ta place.

    • C'est à toi de nous montrer ce que tu as fait.
    • Ensuite, on t'aide à corriger.

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : administrateur de base de données

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Par défaut le meme problème
    merci jreaux62 ,
    pouvez vous montrer les étapes de travail à suivre pour atteindre mon objectif, puisque je suis nul en php.
    merci beaucoup.

  11. #11
    Invité
    Invité(e)
    Par défaut
    OK. Résumé de ce qui a déjà été dit :

    1- sur chaque ligne, un bouton "Détails"
    2- Quand on clique dessus, un script JS récupère l'id_table1 de cette ligne,
    3- et le transmet, via Ajax, à un fichier PHP externe
    4- Le fichier PHP externe traite les données, effectue la requête sur la table2 "... WHERE id_table1 = ..." (celui récupéré)
    5- Retour Ajax : on affiche le résultat

    Bon courage.

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : administrateur de base de données

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Par défaut merci
    jreaux62 et abdennour bouaicha : merci infiniment pour vos aide.

  13. #13
    Membre actif Avatar de abdennour bouaicha
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 98
    Par défaut
    bon ,voila un code complet: tu dois créer dans un répertoire deux fichiers index.php et json.php
    code du index.php:
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    <?php 
    $bdd = new PDO('mysql:host=localhost;dbname=tp_php', 'root', '',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
     
    ?>
    <meta charset="utf8" />
    <style>
    ._dev{
        width: 150px;
        display: block;
        float: left;
        text-align: right;
    }
    .b_insert{
        width: 100px;
        margin-top: 10px;
        margin-bottom: 10px;
    }
    .div_aff{
        width: 100%;
        height: 300px;
        float: left;
        border: 2px solid;
    	overflow:auto;
    }
    .t_tab{
        width: 100%;
    }
    .t_tab th,.t_tab td{
        text-align: center;
        border: 1px solid;
    }.t_tab th{
        background: #ddd;
    }
    </style>
     
    <table class="t_tab col-xs-6">
    		<thead><tr><th>id</th><th>cin</th><th>nom</th><th>prenom</th><th>sex</th><th>afficher</th></tr></thead>
    		<tbody>
    		<?php 
    		$row=$bdd->query('select * from etat_civil')or die('<br>'.var_dump($bdd->errorInfo()));
    		while($d=$row->fetch())
    	echo '<tr><td>'.$d['id'].'</td><td>'.$d['CIN'].'</td><td>'.$d['NOM'].'</td><td>'.$d['PRENOM'].'</td><td>'.$d['SEX'].'</td>
    		<td><button data-id="'.$d['id'].'" class="b_aff">aficher</button></td></tr>';
    		?>
    		</tbody>
    	</table>
    <div class="div_aff"></div>
    <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.4.1.min.js"></script>
    <script>
    function f(div,id){
    $.ajax({type:'GET',dataType:'json',url:'json.php?id='+id,success:function(data){
    	var x='<table class="t_tab t_tabi t_tab'+id+'"><thead><tr><th>id</th><th>cin</th><th>nom</th><th>prenom</th></tr></thead><tbody>';
    	for(var i=0;i<data.length;i++)
    		x+='<tr><td>'+data[i]['id']+'</td><td>'+data[i]['CIN']+'</td><td>'+data[i]['NOM']+'</td><td>'+data[i]['PRENOM']+'</td></tr>';
    	x+='</tbody></table>';
    	$('.t_tabi').remove();
    	$(div).append(x);
     
    }});
    }
    $('.b_aff').click(function(){
    f('.div_aff',$(this).attr('data-id'));
    	});
    </script>
    le dode de json.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    	header('Content-Type: application/json;charset=utf-8');
    	$bdd = new PDO('mysql:host=localhost;dbname=tp_php', 'root', '',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
     
    function isIsset(array $h){$s=array();foreach($h as $i=>$k){if(isset($i) && isset($k) && !is_numeric($i))$s[$i]=$k;}return $s;}
    $s=array(array());$k=0;
    $sql='select * from etat_civil where id='.$_GET['id'];
    $row=$bdd->query('SET NAMES utf8')or die('<br>'.var_dump($bdd->errorInfo()));
    $row=$bdd->query($sql)or die('<br>'.var_dump($bdd->errorInfo()));
    	while($d=$row->fetch()){$s[$k++]=isIsset($d);}
    	$json=json_encode($s,JSON_UNESCAPED_UNICODE);
    	echo $json;
    ?>
    et n'oublie pas de changer le nom de la base de données,ainsi la table et les colonnes.

  14. #14
    Nouveau membre du Club
    Femme Profil pro
    administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : administrateur de base de données

    Informations forums :
    Inscription : Octobre 2019
    Messages : 6
    Par défaut merci
    Merci beaucoup abdennour, et je vous souhaite tout le succès possible.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par etudiante2019 Voir le message
    ...merci beaucoup.

    ...Merci beaucoup pour votre attention.

    ...merci infiniment pour vos aide.

    ...Merci beaucoup ..., et je vous souhaite tout le succès possible.
    Il faut bien avouer qu'on n'est pas habitué à autant de gentillesse et de politesse *...

    C'est vrai que c'est agréable.


    * ... alors qu'on n'a, en fait, pas fait grand chose...

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/01/2008, 16h31
  2. agregats et table maitre détail
    Par pierrot67 dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/03/2006, 21h18
  3. Maitre/Détail -> Tri de la table detail
    Par Nathan dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/05/2004, 09h54

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