rechercher sur 2 tables

beuze
Invité n'ayant pas de compte PHPfrance

20 août 2014, 17:08

Bonjour! je voudrai faire un recherche sur 2 tables différentes suivant: la date d'arrivée et le numéro du dossier.
J'ai déja fait les recherches simples sur une seul table mais il me reste sur les 2 tables. Si vous pouviez me mettre sur la voie merci!
voici les deux tables:
-- Structure de la table `arrivee`
--

CREATE TABLE IF NOT EXISTS `arrivee` (
  `Id_Arrivee` bigint(11) NOT NULL AUTO_INCREMENT,
  `Date_arrivee` varchar(25) NOT NULL,
  `num_correspondance` varchar(25) NOT NULL,
  `expediteur` varchar(25) NOT NULL,
  `objet` varchar(25) NOT NULL,
  `num_reponse` varchar(25) NOT NULL,
  `designation` varchar(25) NOT NULL,
  `observation` varchar(25) NOT NULL,
  `id_depart` bigint(11) NOT NULL,
  `id_dossier` bigint(11) NOT NULL,
  `id_fournisseur` bigint(11) NOT NULL,
  PRIMARY KEY (`Id_Arrivee`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;


-- Structure de la table `dossier`
--

CREATE TABLE IF NOT EXISTS `dossier` (
  `id_dossier` bigint(11) NOT NULL AUTO_INCREMENT,
  `num_dossier` varchar(25) NOT NULL,
  `objet` varchar(25) NOT NULL,
  `type` varchar(25) NOT NULL,
  PRIMARY KEY (`id_dossier`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

Ceci est ma requete de recherche simple sur la table arrivée!!


<?php
if (isset($_POST['ok'])){
require_once('Connections/connexion.php');
extract($_POST);
$req = "select * FROM arrivee where Date_arrivee like '%$rech%' " ;
$execute = mysql_query($req) or die (mysql_error()) ;
echo"<table border=0 >
<tr>
<td>Id_Arrivee</td>
<td>Date_arrivee</td>
<td>num_correspondance</td>
<td>expediteur</td>
<td>objet</td>
<td>num_reponse</td>
<td>designation</td>
<td>observation</td>
<td>id_dossier</td>
<td>id_destinataire</td>
<td>id_fournisseur</td>
</tr>";
while($ligne=mysql_fetch_array($execute)){
echo"<tr>
<td>".$ligne['Id_Arrivee']."</td>
<td>".$ligne['Date_arrivee']."</td>
<td>".$ligne['num_correspondance']."</td>
<td>".$ligne['expediteur']."</td>
<td>".$ligne['objet']."</td>
<td>".$ligne['num_reponse']."</td>
<td>".$ligne['designation']."</td>
<td>".$ligne['observation']."</td>
<td>".$ligne['id_dossier']."</td>
<td>".$ligne['id_destinataire']."</td>
<td>".$ligne['id_fournisseur']."</td>
</tr>";
}
echo"</table>";
}
?>

Mammouth du PHP | 1339 Messages

20 août 2014, 17:17

$sql = "SELECT * FROM `arrivee` JOIN `dossier` ON `dossier`.`id_dossier` = `arrivee`.`id_dossier` WHERE `arrivee`.`Date_arrivee` = '%".$rech."%'";
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 août 2014, 14:50

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 19 Messages

23 oct. 2014, 00:51

Bonjour

Pour faire des requêtes qui utilisent plusieurs tables il faut indiquer ce qui les relie (c'est important que ce soit une clé primaire).

L'élément commun à vos deux tables c'est le champs id_dossier.
Si vous voulez savoir pour chacun des dossier la date d'arrivée la requête sera:
SELECT dossier.nom_dossier, 
             arrivee.date_arrivee
FROM dossier, arrivee
WHERE dossier.id_dossier = rrivee.id_dossier;
Voilou !