Operand should contain 1 column(s)

g16 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

je suis actuellement entrain d'essayer de résoudre un problème sur mon code mais j'ai toujours ce message d'erreur qui s'affiche : Operand should contain 1 column(s)
je ne comprends pas pourquoi malgré mes recherches :(
Si quelqu'un peut m'aider sur ce point ca serait top !

 <html>
<head>
<title>Dipendenti del esame</title>
</head>
<body>
<h1>Dipendenti dell'esame scelto che hanno una certificazione </h1>

<?php
$link = mysql_connect ("localhost","root","","ponti_torino") or die ("Impossibile connettersi al DBMS");
mysql_select_db ("ponti_torino") ;

if (isset($_REQUEST["CodEsame"])) {
 if ($_REQUEST["CodEsame"]=="") {
  $query="SELECT * FROM esame, personale;";
 } else {
  $query="SELECT CodFisc, CodEsame FROM personale, esame
    WHERE esame.CodContratto = personale.CodContratto AND CodEsame='".$_REQUEST["CodEsame"]."'
 AND CodFisc IN (SELECT CodCertif, CodFisc FROM certificazione WHERE certificazione.CodContratto=personale.CodContratto);";
  
 }
} 

$result = mysql_query($query, $link) or die(mysql_error());


print "<table border=\"1\">";
print "<tr>";
print "<td><b>CodFisc</b></td>";
print "<td><b>CodEsame</b></td>";
print "<td><b>DataEsame</b></td>";
print "</tr>";


while($row = mysql_fetch_array($result)) {
 if ($row != NULL) {
 print "<tr>";
 print "<td>".$row["CodFisc"]."</td>";
 print "<td>".$row["CodEsame"]."</td>";
 print "<td>".$row["DataEsame"]."</td>";
 print "</tr>";
 }
}

print "</table>";
mysql_close($link);


?>
</body>
</html>




1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Ton souci ne se trouverait-il pas au niveau de ton sous-select ?
Essayes ceci :
$code = isset($_REQUEST["CodE"]) ? $_REQUEST["CodE"] : '';
$query="SELECT CodFisc
                     , CodE 
             FROM personale P
                     ,esame E
             WHERE E.CodContratto = P.CodContratto 
                 AND CodE='$code'
                 AND CodFisc IN (
                               SELECT CodFisc 
                               FROM certificazione 
                               WHERE certificazione.CodContratto=P.CodContratto
                              );";


NB: Attention... tu utilises l'ancienne extension Mysql... considérée comme obsolète !
Je t'invite à passer à mysqli ou (je préfère...) la PDO.

Nb²: Il serait également préférable de passer aux variables POST (et/ou GET) au lieu des $_REQUEST.



Cordialement, 
Jordane                                                                 
0