cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008
-
8 avril 2007 à 21:18
cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008
-
8 avril 2007 à 22:36
Bonsoir,
J'ai deux tables :
La premiere qui se nomme 'affectation' avec les champs suivants :
ID_AFFECT, ID_COURAR, ID_BUREAUACT et ID_BUREAUINF.
La seconde 'bureau' avec les champs suivants :
ID_BUREAU et BUREAU.
Je fais deux requêtes :
<!-- BEGIN TEMPLATE: bbcode_code -->
<?php
$colname_rsAffectation = "-1";
if(isset($_GET['id_courar'])){
$colname_rsAffectation = (get_magic_quotes_gpc()) ? $_GET['id_courar'] : addslashes($_GET['id_courar']);
}
mysql_select_db($database_CnxCourrier, $CnxCourrier);
$query_rsAffectation = sprintf("SELECT affectation.ID_COURAR, affectation.ID_BUREAUACT, affectation.ID_BUREAUINF FROM affectation, bureau WHERE affectation.ID_COURAR='%s' ", $colname_rsAffectation);
$rsAffectation = mysql_query($query_rsAffectation, $CnxCourrier) or die(mysql_error());
$row_rsAffectation = mysql_fetch_assoc($rsAffectation);
$totalRows_rsAffectation = mysql_num_rows($rsAffectation);
mysql_select_db($database_CnxCourrier, $CnxCourrier);
$query_rsBureaux = "SELECT bureau.ID_BUREAU, bureau.BUREAU FROM bureau ORDER BY bureau.ID_BUREAU ASC";
$rsBureaux = mysql_query($query_rsBureaux, $CnxCourrier) or die(mysql_error());
$row_rsBureaux = mysql_fetch_assoc($rsBureaux);
$totalRows_rsBureaux = mysql_num_rows($rsBureaux);
?>
La première requête m'indique les identifiants des bureau ayant eu pour affectation un courrier soit pour ACTION(id_bureauact) soit pour INFO(id_bureauinf).
La seconde me renvoi l'ensemble de la liste des bureaux existants.
Mon soucis est le suvant :
Je n'arrive pas à trouver la façon de comparer ces deux requêtes afin de ressortir la liste des bureaux qui n'ont pas eu d'affectation.
Merci.<!-- / message -->
mysql_select_db($database_CnxCourrier, $CnxCourrier);
$query_rsBureaux = "SELECT bureau.ID_BUREAU, bureau.BUREAU FROM bureau WHERE bureau.ID_BUREAU NOT IN (SELECT affectation.ID_COURAR, affectation.ID_BUREAUACT, affectation.ID_BUREAUINF FROM affectation WHERE affectation.ID_COURAR='$idcourar')";
$rsBureaux = mysql_query($query_rsBureaux, $CnxCourrier) or die(mysql_error());
$row_rsBureaux = mysql_fetch_assoc($rsBureaux);
$totalRows_rsBureaux = mysql_num_rows($rsBureaux);
?>
J'obtient le message d'erreur suivant :
"Operand should contain 1 column(s)".
cs_jumano
Messages postés64Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention29 février 2008 8 avril 2007 à 22:36
Merci des conseils, cela fonctionne impec avec la requête suivante :
SELECT bureau.ID_BUREAU, bureau.BUREAU
FROM bureau
WHERE bureau.ID_BUREAU NOT IN (SELECT affectation.ID_BUREAUACT FROM affectation WHERE affectation.ID_COURAR='idcourar') AND bureau.ID_BUREAU NOT IN (SELECT affectation.ID_BUREAUINF FROM affectation WHERE affectation.ID_COURAR='idcourar')