MySQL : #1064 - Erreur de syntaxe près de
Résolu/Fermé
stagiaire1
-
7 mai 2013 à 10:10
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 - 7 mai 2013 à 12:57
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 - 7 mai 2013 à 12:57
A voir également:
- #1064 - erreur de syntaxe près de
- Mysql community server - Télécharger - Bases de données
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Mysql fatal error ✓ - Forum MySQL
- Le serveur mysql est inaccessible. vérifiez votre configuration. ✓ - Forum MySQL
7 réponses
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
7 mai 2013 à 10:28
7 mai 2013 à 10:28
Bonjour,
Envoie moi ton script de création de table + tes données de tests (CREATE TABLE + INSERT INTO) pour que je puisse regarder.
Cordialement,
Gigatrappeur
Envoie moi ton script de création de table + tes données de tests (CREATE TABLE + INSERT INTO) pour que je puisse regarder.
Cordialement,
Gigatrappeur
stagiaire_1
Messages postés
17
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
14 juin 2013
8
Modifié par stagiaire_1 le 7/05/2013 à 11:03
Modifié par stagiaire_1 le 7/05/2013 à 11:03
Je vous prie de m'excuser du temps de réponse, j'ai du me créer un compte sinon je ne pouvais pas poster de messages à cause du "titre du message non renseigné".
Ce que je cherche à faire : J'ai un "user" avec un id que je connais qui souhaite visualiser ses produits virtuels (champ is_virtual de la table product) parmi les commandes qu'il a passé et qui n'ont pas été livrées (champ is_delivered de la table order).
Voici le script de création, la table1 correspond à la table product, la table2 correspond à la table order_detail, la table3 correspond à la table order.
--Structure de la table 'order'
--
CREATE TABLE IF NOT EXISTS 'order' (
'idO' int(12) unsigned NOT NULL AUTO_INCREMENT,
'idU' int(12) unsigned NOT NULL,
'is_delivered' int(1) NOT NULL,
PRIMARY KEY ('idO')
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table 'order'
--
INSERT INTO 'order' ('idO', 'idU', 'is_delivered') VALUES
(1, 1, 0),
(2, 1, 0);
--
-- Structure de la table 'order_detail'
--
CREATE TABLE IF NOT EXISTS 'order_detail' (
'idO_D' int(11) unsigned NOT NULL AUTO_INCREMENT,
'idO' int(11) unsigned NOT NULL,
'idP' int(11) unsigned NOT NULL,
PRIMARY KEY ('idO_D')
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Contenu de la table 'order_detail'
--
INSERT INTO 'order_detail' ('idO_D', 'idO', 'idP') VALUES
(1, 1, 4),
(2, 1, 2),
(3, 2, 4),
(4, 2, 5);
--
-- Structure de la table 'product'
--
CREATE TABLE IF NOT EXISTS 'product' (
'idP' int(8) NOT NULL AUTO_INCREMENT,
'name' varchar(32) NOT NULL,
'is_virtual' int(1) NOT NULL,
'url' varchar(255) NOT NULL,
PRIMARY KEY ('idP')
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
--
-- Contenu de la table 'product'
--
INSERT INTO 'product' ('idP', 'name', 'is_virtual', 'url') VALUES
(1, 'Samsung Galaxy S3', 0, ''),
(2, 'IPad mini', 0, ''),
(3, 'Angry Birds', 1, ''),
(4, 'Aptoide', 1, 'http://127.0.0.1/apps/Aptoide.apk'),
(5, 'Talking tom cat 2', 1, 'http://127.0.0.1/apps/Talking_Tom_Cat_2_Free_1.2.1.apk');
--
-- Structure de la table 'user'
--
CREATE TABLE IF NOT EXISTS 'user' (
'idU' int(11) NOT NULL AUTO_INCREMENT,
'surname' varchar(32) NOT NULL,
'name' varchar(32) NOT NULL,
'pass' varchar(32) NOT NULL,
'email' varchar(255) NOT NULL,
'dateOfBirth' varchar(12) NOT NULL,
PRIMARY KEY ('idU')
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
--
-- Contenu de la table 'user'
--
INSERT INTO 'user' ('idU', 'surname', 'name', 'pass', 'email', 'dateOfBirth') VALUES
(1, 'Jean', 'Jean', 'yop', 'jean@jean.fr', '06/06/1991');
Ce que je cherche à faire : J'ai un "user" avec un id que je connais qui souhaite visualiser ses produits virtuels (champ is_virtual de la table product) parmi les commandes qu'il a passé et qui n'ont pas été livrées (champ is_delivered de la table order).
Voici le script de création, la table1 correspond à la table product, la table2 correspond à la table order_detail, la table3 correspond à la table order.
--Structure de la table 'order'
--
CREATE TABLE IF NOT EXISTS 'order' (
'idO' int(12) unsigned NOT NULL AUTO_INCREMENT,
'idU' int(12) unsigned NOT NULL,
'is_delivered' int(1) NOT NULL,
PRIMARY KEY ('idO')
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table 'order'
--
INSERT INTO 'order' ('idO', 'idU', 'is_delivered') VALUES
(1, 1, 0),
(2, 1, 0);
--
-- Structure de la table 'order_detail'
--
CREATE TABLE IF NOT EXISTS 'order_detail' (
'idO_D' int(11) unsigned NOT NULL AUTO_INCREMENT,
'idO' int(11) unsigned NOT NULL,
'idP' int(11) unsigned NOT NULL,
PRIMARY KEY ('idO_D')
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Contenu de la table 'order_detail'
--
INSERT INTO 'order_detail' ('idO_D', 'idO', 'idP') VALUES
(1, 1, 4),
(2, 1, 2),
(3, 2, 4),
(4, 2, 5);
--
-- Structure de la table 'product'
--
CREATE TABLE IF NOT EXISTS 'product' (
'idP' int(8) NOT NULL AUTO_INCREMENT,
'name' varchar(32) NOT NULL,
'is_virtual' int(1) NOT NULL,
'url' varchar(255) NOT NULL,
PRIMARY KEY ('idP')
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
--
-- Contenu de la table 'product'
--
INSERT INTO 'product' ('idP', 'name', 'is_virtual', 'url') VALUES
(1, 'Samsung Galaxy S3', 0, ''),
(2, 'IPad mini', 0, ''),
(3, 'Angry Birds', 1, ''),
(4, 'Aptoide', 1, 'http://127.0.0.1/apps/Aptoide.apk'),
(5, 'Talking tom cat 2', 1, 'http://127.0.0.1/apps/Talking_Tom_Cat_2_Free_1.2.1.apk');
--
-- Structure de la table 'user'
--
CREATE TABLE IF NOT EXISTS 'user' (
'idU' int(11) NOT NULL AUTO_INCREMENT,
'surname' varchar(32) NOT NULL,
'name' varchar(32) NOT NULL,
'pass' varchar(32) NOT NULL,
'email' varchar(255) NOT NULL,
'dateOfBirth' varchar(12) NOT NULL,
PRIMARY KEY ('idU')
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
--
-- Contenu de la table 'user'
--
INSERT INTO 'user' ('idU', 'surname', 'name', 'pass', 'email', 'dateOfBirth') VALUES
(1, 'Jean', 'Jean', 'yop', 'jean@jean.fr', '06/06/1991');
Utilisateur anonyme
7 mai 2013 à 11:27
7 mai 2013 à 11:27
Bonjour
Mauvaise idée d'appeler ta table 'order'.
À tous les coups c'est un mot réservé.
Change le nom ou, si tu tiens absolument à le garder, entoure-le d'accents graves (Alt Gr 7)
Mauvaise idée d'appeler ta table 'order'.
À tous les coups c'est un mot réservé.
Change le nom ou, si tu tiens absolument à le garder, entoure-le d'accents graves (Alt Gr 7)
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
7 mai 2013 à 11:35
7 mai 2013 à 11:35
Bonjour,
En faite, "order" est un mot réservé. Il sert à ordonner les résultats d'un select.
Tu ne peut donc pas l'utiliser en tant que nom de table.
Voilà.
Cordialement,
Gigatrappeur
En faite, "order" est un mot réservé. Il sert à ordonner les résultats d'un select.
Tu ne peut donc pas l'utiliser en tant que nom de table.
Voilà.
Cordialement,
Gigatrappeur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
stagiaire_1
Messages postés
17
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
14 juin 2013
8
7 mai 2013 à 11:45
7 mai 2013 à 11:45
Merci beaucoup ça marche maintenant.
Voici la requête que j'utilise :
SELECT P.url
FROM 'order' O, order_detail OD, product P
WHERE O.idU = '1'
AND O.is_delivered = '0'
AND O.idO = OD.idO
AND OD.idP = P.idP
AND P.is_virtual = '1';
J'aurais une autre petite question, par exemple cette requête me renvoi les lignes suivantes :
http://img69.imageshack.us/img69/4738/resultwl.jpg
Comment puis-je éviter les doublons ?
Merci
Voici la requête que j'utilise :
SELECT P.url
FROM 'order' O, order_detail OD, product P
WHERE O.idU = '1'
AND O.is_delivered = '0'
AND O.idO = OD.idO
AND OD.idP = P.idP
AND P.is_virtual = '1';
J'aurais une autre petite question, par exemple cette requête me renvoi les lignes suivantes :
http://img69.imageshack.us/img69/4738/resultwl.jpg
Comment puis-je éviter les doublons ?
Merci
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
7 mai 2013 à 11:50
7 mai 2013 à 11:50
Fais un select distinct :
Gigatrappeur
SELECT DISTINCT P.url FROM ...
Gigatrappeur
stagiaire_1
Messages postés
17
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
14 juin 2013
8
Modifié par stagiaire_1 le 7/05/2013 à 11:53
Modifié par stagiaire_1 le 7/05/2013 à 11:53
Super, merci beaucoup pour votre aide.
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 juillet 2014
25
7 mai 2013 à 12:57
7 mai 2013 à 12:57
Peux-tu passer le sujet en résolu, si c'est le cas ? merci.