Dans ma base de donnée j'ai deux tables: comptes_utilisateurs et annonce.
Je me suis inscrit avec 2 nom d'utilisateur (exemple utilisateur-A & utilisateur-B) donc dans ma table comptes_utilisateurs j'ai mes 2 entrée jusque là parfait !
l'utilisateur-A, crée son annonce et elle s'enregistre bien dans la table annonce si il veut la visualiser il va dans son espace membre et elle s'affiche bien!
Mais si exemple l'utilisateur-B se connecte à son espace, il aura dans son espace l'annonce de l'utilisateur-A donc là: problème !!
Donc faut faire appel aux jointures, mais je suis perdu dans requête SQL et j'ai deux erreurs ....
Ma table comptes_utilisateurs
CREATE TABLE IF NOT EXISTS `comptes_utilisateurs` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`Nom_Utilisateur` varchar(20) CHARACTER SET utf8 NOT NULL,
`Mot_de_Passe` varchar(40) CHARACTER SET utf8 NOT NULL,
`Adresse_Email` varchar(255) CHARACTER SET utf8 NOT NULL,
`Date_Inscription` int(10) NOT NULL DEFAULT '0',
`Compte_Active` enum('0','1') CHARACTER SET utf8 NOT NULL DEFAULT '0',
`Clef_Activation` varchar(8) CHARACTER SET utf8 NOT NULL,
`hash_cookie` varchar(40) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Table annonceCREATE TABLE IF NOT EXISTS `annonce` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`id_user` int(20) NOT NULL,
`gamme` varchar(60) CHARACTER SET utf8 NOT NULL,
`titre` varchar(100) CHARACTER SET utf8 NOT NULL,
`description` mediumtext CHARACTER SET utf8 NOT NULL,
`prix` varchar(100) CHARACTER SET utf8 NOT NULL,
`contact` varchar(255) CHARACTER SET utf8 NOT NULL,
`departement` varchar(50) CHARACTER SET utf8 NOT NULL,
`avatar` varchar(100) CHARACTER SET utf8 NOT NULL,
`date_annonce` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Ce que je ne comprend pas si par exemple l'utilisateur-A enregistre 2 annonces ou + dans id_user la valeur sera toujours 0
Ma requête préparé lors de la création de l'annonce
$query=$db->prepare('INSERT INTO annonce (
id_user
, gamme
, titre
, description
, contact
, departement
, prix
, avatar
)
VALUES (:id_user, :gamme, :titre, :description, :contact, :departement, :prix, :avatar)');
$query->bindValue(':id_user', $gamme, PDO::PARAM_INT);
$query->bindValue(':gamme', $gamme, PDO::PARAM_STR);
$query->bindValue(':titre', $titre, PDO::PARAM_STR);
$query->bindValue(':description', $description, PDO::PARAM_STR);
$query->bindValue(':departement', $departement, PDO::PARAM_STR);
$query->bindValue(':contact', $contact, PDO::PARAM_STR);
$query->bindValue(':prix', $prix, PDO::PARAM_STR);
$query->bindValue(':avatar', $nomavatar, PDO::PARAM_STR);
$query->execute();
Ma requête pour afficher mes annonces$query=$db->prepare('SELECT titre, description, contact, departement, DATE_FORMAT(date_annonce, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr
FROM annonce
INNER JOIN comptes_utilisateurs
ON annonce.id_user = comptes_utilisateurs.id
ORDER BY id DESC
LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage.'');
$query->execute();
et mes 2 erreurs lors je veux voir mon annonce:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in order clause is ambiguous' in C:\wamp......
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in order clause is ambiguous in C:\wamp\....
