Requète checkboxs

Résolu
labourette Messages postés 670 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

J'ai une requète pour pouvoir afficher deux listes de checkboxs. Malheureusement des erreurs apparaissent, pouvez-vous m'aider à résoudre mes erreurs.
En fait si je fait cette requète uniquement avec les 2 tables "tb_gestion" et "tb_adherent_gestion" ça fonctionne du moins mes checkboxs correspondant à ses tables.
En rajoutant les deux tables "tb_statut" et "tb_adherent_statut" là par contre grosse erreur.
Pouvez-vous m'aider s'ils vous plait
Je vous remercie beaucoup.
<?php
	$sql = "SELECT
		tb_gestion.nom_gestion,
		tb_gestion.id_gestion,
		tb_statut.nom_statut,
		tb_statut.id_statut,
		NOT(tb_adherent_gestion.rid_adherent, tb_adherent_statut.rid_adherent IS NULL) checked
		FROM tb_gestion
		INNER JOIN tb_adherent_gestion
		ON tb_gestion.id_gestion = tb_adherent_gestion.rid_gestion
		INNER JOIN tb_adherent_statut
		ON tb_statut.id_statut = tb_adherent_statut.rid_statut
		WHERE (((tb_adherent_gestion.rid_adherent)='".$PARAM['ID_ADHERENT']."'";
	$requete1 = $bdd->prepare($sql);							
	$requete1->execute();
		while ($donnees = $requete1->fetch())
		{
			echo "<tr>";
			echo "<td width='25%'><input type='checkbox' name='nom_gestion[]' value='".$donnees['id_gestion']."'". ($donnees['checked'] ? ' checked="checked"':'') . ">";
			echo "".$donnees['nom_gestion']."</td>";
			
			
			echo "<td width='25%'><input type='checkbox' name='nom_statut[]' value='".$donnees['id_statut']."'". ($donnees['checked'] ? ' checked="checked"':'') . ">";
			echo "".$donnees['nom_statut']."</td>";				
		}
	$requete1->closeCursor();
?>

mes erreurs
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 13 in C...


4 réponses

  1. Utilisateur anonyme
     
    Il semble parler d'une erreur de syntaxe à la ligne 13, ne serait-ce pas les trois paranthèses dont une seule est fermée?

    Si on les ignore,

    WHERE tb_adherent_gestion.rid_adherent='".$PARAM['ID_ADHERENT']."'";
    0
  2. labourette Messages postés 670 Statut Membre 6
     
    Bonjour
    Effectivement cela m'a supprimé une erreur, merci.
    Mais voilà il y en a une autre si vous pouvez y jeter un oeil, je vous remercie.
    SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s) in C....
    
    0
  3. labourette Messages postés 670 Statut Membre 6
     
    Bonjour

    Je vous donne ma requète si toute fois vous pouvez m'aider à résoudre mon erreur, je ne vois vraiment pas.
    En vous remerciant d'avance
    <?php
    	$sql = "SELECT
    		tb_gestion.nom_gestion,
    		tb_gestion.id_gestion,
    		tb_statut.nom_statut,
    		tb_statut.id_statut,		
    		NOT(tb_adherent_gestion.rid_adherent, tb_adherent_statut.rid_adherent IS NULL) checked
    		FROM tb_gestion
    	    INNER JOIN tb_adherent_gestion
    		ON tb_adherent_gestion.rid_gestion = tb_gestion.id_gestion
    		INNER JOIN tb_statut
    		INNER JOIN tb_adherent_statut
    		ON tb_adherent_statut.rid_statut = tb_statut.id_statut
            AND tb_adherent_statut.rid_adherent ='".$PARAM['ID_ADHERENT']."'
            AND tb_adherent_gestion.rid_adherent ='".$PARAM['ID_ADHERENT']."'";
    	$requete1 = $bdd->prepare($sql);							
    	$requete1->execute();
    		while ($donnees = $requete1->fetch())
    		{
    			echo "<tr>";
    			echo "<td width='20%'><input type='checkbox' name='nom_gestion[]' value='".$donnees['id_gestion']."'". ($donnees['checked'] ? ' checked="checked"':'') . ">";
    			echo "".$donnees['nom_gestion']."";
    			echo "</td>";
    			
    			echo "<td width='25%'><input type='checkbox' name='nom_statut[]' value='".$donnees['id_statut']."'". ($donnees['checked'] ? ' checked="checked"':'') . ">";
    			echo "".$donnees['nom_statut']."";
    			echo "</td>";
    			echo "</tr>";			
    		}			
    	$requete1->closeCursor();
    ?>
    


    mon erreur
    Cardinality violation: 1241 Operand should contain 1 column(s) in C....
    
    0
  4. Utilisateur anonyme
     
    Je ne t'assure rien, mais voilà une hyptohèse. Il est probable que l'erreur survienne sur la ligne 7, ainsi:

    NOT(tb_adherent_gestion.rid_adherent, tb_adherent_statut.rid_adherent IS NULL) checked
    
    //Tu supprimes, puis ajoute ces lignes à la toute fin de la requête:
    WHERE tb_adherent_gestion.rid_adherent IS NOT NULL
    AND tb_adherent_statut.rid_adherent IS NOT NULL
    
    0