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 :

Comparer les valeurs de 2 tables dans une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de Tchams
    Homme Profil pro
    Ingénieur en génie industriel
    Inscrit en
    Janvier 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur en génie industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 29
    Par défaut Comparer les valeurs de 2 tables dans une requête
    Salut tous le monde !

    Voilà, je suis bloqué sur quelque chose que je pensais facile mais dont je ne voix l’aboutissement depuis bientôt 2 jours déjà. Je veux afficher les données de ma table A si l'une de ces champs ne se trouve pas dans un des champs de la tables B. Voilà ce que j'ai fait parmi tant d'autres qui n'ont pas fonctionner :

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    <?php
    // ------------------------------------------------------------
    // Connection à la Base de Données
    // ------------------------------------------------------------
     
    if( !function_exists('my_pdo_connexxion') )
    {
    	function my_pdo_connexxion()
    	{
    		// ---------
    		$hostname	= 'localhost'; 		// voir hébergeur ou "localhost" en local
    		$database	= 'test_tuto'; 	// nom de la BdD
    		$username	= 'root'; 			// identifiant "root" en local
    		$password	= ''; 				// mot de passe (vide en local)
    		// ---------
    		// connexion à la Base de Données
    		try {
    			// chaine de connexion (DSN)
    			$strConn 	= 'mysql:host='.$hostname.';dbname='.$database.';charset=utf8';	// UTF-8
    			$extraParam	= array(
    				PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,		// rapport d'erreurs sous forme d'exceptions
    				PDO::ATTR_PERSISTENT => true, 						// Connexions persistantes
    				PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, 	// fetch mode par defaut
    				PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"	// encodage UTF-8
    				);
    			// Instancie la connexion
    			$pdo = new PDO($strConn, $username, $password, $extraParam);
    			return $pdo;
    		}
    		// ---------
    		catch(PDOException $e){
    			$msg = 'ERREUR PDO connexion...'; die($msg);
    			return false;
    		}
    		// ---------
    	}
    }
    // --------------------------------
    $pdo	= my_pdo_connexxion();
     
    // --------------------------------------------------------------
     
    ?>
     
     
    <?php
    // --------------------------------
    // La requete (exemple) : tous les "objet", classés par "id".
    $query = "SELECT DISTINCT * FROM profil INNER JOIN traitement ON profil.datemesure != traitement.traiter ORDER BY profil.datemesure ASC;";
      try {
    	$pdo_select = $pdo->prepare($query);
    	$pdo_select->execute();
    	$NbreData = $pdo_select->rowCount();	// nombre d'enregistrements (lignes)
    	$rowAll = $pdo_select->fetchAll();
      } catch (PDOException $e){ echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }
    // --------------------------------
    // affichage
    if ($NbreData != 0) 
    {
    ?>
     
    /****************** PUIS J'AFFICHE DANS UN TABLEAU MES VALEURS ****************/
    <?php
    	$i = 1;
    	foreach ( $rowAll as $row )
    	{
    ?>
    <tr>
    <?php
                    echo '<td><input class="text_back" type="text" value="'.$row['datemesure'].'" name="datemesure'.$i.'" readonly/></td>';
    	        echo '<td><input class="text_back" type="text" value="'.$row['pseudo_profil'].'" name="pseudo_profil'.$i.'" readonly/></td>';
     
    	        echo '<td>';
    	        echo '<input type="submit" name="Formulaire'.$i.'" value="Formulaire" class="button03" /></br>';
    		if(isset($_POST['Formulaire'.$i.''])){
     
    		$select = "select * from profil order by datemesure desc";
     
    		$aVar = mysqli_connect('localhost','root','','test_tuto');
    		$qry = mysqli_query($aVar, $select);
    		if(!$qry){
    			header('Location: ../account');
    		}else{
    			header('Location: ../formulaire_vue3?pseudo_profil='.$row['pseudo_profil'].'&datemesure='.$row['datemesure'].'&session_user='.$session_user.' ');
    		}
    	}
    	echo '</td>';
    ?>
    </tr>
    <?php
    	$i += 1;
    } // fin foreach
    	unset($i);
    ?>
    Je précise déjà que mes tables ne sont point identiques en terme de colonnes ou de lignes mais les champs que je compare dans ma requête sont de la même nature (DATETIME). Au départ la table B est vide, dans ce cas, rien ne s'affiche dans mon tableau et je ne comprend pas pourquoi. Mais, lorsque je met une donnée manuellement, le tableau donne comme je veux mais lorsque je met une deuxième donnée, le tableau se met à répéter tous en double et etc. Ma question serait donc de savoir comment je peut régler ce problème ou où ai-je fais une erreur que jeux peut corriger.

    Merci d'avoir lu ce poste !!!
    Images attachées Images attachées   

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

    essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = "SELECT * 
       FROM profil 
       WHERE profil.datemesure NOT IN (SELECT traitement.traiter FROM traitement)
       ORDER BY profil.datemesure ASC;";

  3. #3
    Membre averti Avatar de Tchams
    Homme Profil pro
    Ingénieur en génie industriel
    Inscrit en
    Janvier 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur en génie industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 29
    Par défaut
    SUPERBE SUPERBE SUPERBE !!!!!!!!!!
    Big thanks jreaux62, ça marche à merveille.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparer les valeurs de deux colonnes d'une table
    Par nguim dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/03/2014, 11h30
  2. Insérer les valeurs d'un tableau dans une table
    Par Konami15 dans le forum ASP
    Réponses: 30
    Dernier message: 30/09/2008, 15h14
  3. [MySQL] Organiser les valeurs de 2 tables dans une liste de sélection
    Par domdas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/08/2006, 08h51
  4. Copier les valeurs d'un formulaire dans une table
    Par Cyphen dans le forum Access
    Réponses: 4
    Dernier message: 19/06/2006, 10h45
  5. Réponses: 10
    Dernier message: 19/09/2005, 22h24

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