Requète checkboxs

Résolu/Fermé
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 11 juil. 2014 à 00:23
 Utilisateur anonyme - 13 juil. 2014 à 00:24
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

Utilisateur anonyme
11 juil. 2014 à 01:27
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
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
11 juil. 2014 à 23:12
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
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
12 juil. 2014 à 23:51
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
Utilisateur anonyme
13 juil. 2014 à 00:24
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