[RESOLU] Requête dans formulaire qui affiche message d'erreur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Requête dans formulaire qui affiche message d'erreur

Re: Requête dans formulaire qui affiche message d'erreur

par Chris32 » 06 nov. 2016, 22:42

Solution tout à fait logique, propre, et conforme à une syntaxe valide.
La réponse est : Operand should contain 1 column(s)

Même réponse en passant par Php ou par MySQL.
Réponse qui pourtant ne correspond pas aux possibilités offertes par les requêtes.

C'est un peu rageant au bout de quelques heures ...

Re: Requête dans formulaire qui affiche message d'erreur

par or 1 » 06 nov. 2016, 21:53

INSERT INTO table_2 (Col1, Col3)
SELECT Col1,Col2 FROM table_1

Re: Requête dans formulaire qui affiche message d'erreur

par Chris32 » 06 nov. 2016, 21:45

Si je fais la requête depuis MySQL (sans formulaire ni Php) comme ceci :
INSERT INTO table_2 (Col1, Col3)
SELECT (Col1,Col2) FROM table_1
le message d'erreur de MySQL est : #1241 - Operand should contain 1 column(s)

Si je fais le code comme ceci, cela fonctionne :
$requete1 = "INSERT INTO table_2 (Col1) SELECT (Col1) FROM table_1";

Serait-ce un problème d'insertion avec des tables ne comportant pas le même nombre de colonnes ? Connaissez-vous des pages donnant la syntaxe pour ce cas de figure ? J'ai vainement cherché ...

Merci.

Re: Requête dans formulaire qui affiche message d'erreur

par Chris32 » 06 nov. 2016, 20:47

Mon code corrigé :
$requete1 = "INSERT INTO table_2 (Col1, Col3) VALUES ('', 'x') SELECT (Col1,Col2) FROM table_1";

Message affiché : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT Col1 FROM table_1'

Un vrai mystère ...
Si tu trouves la solution, tu seras un homme en "or".

Je continue de chercher pendant ce temps.
Merci pour l'aide.

Re: Requête dans formulaire qui affiche message d'erreur

par or 1 » 06 nov. 2016, 20:35

le message d'erreur est clair, si tu as 2 champs dans le insert, il faut 2 champs dans le select, et comme il n'y en qu'un seul, cela ne fonctionne pas.

Re: Requête dans formulaire qui affiche message d'erreur

par Chris32 » 06 nov. 2016, 20:17

Je suis allé sur la page indiquée pour la syntaxe, et mon code devient :
$requete1 = "INSERT INTO table_2 (Col1, Col3) SELECT table_1.Col1 FROM table_1";

Message d'erreur : Column count doesn't match value count at row 1.

Re: Requête dans formulaire qui affiche message d'erreur

par Chris32 » 06 nov. 2016, 20:09

Toujours le même message :
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT Col1 FROM table_1'

Si j'enlève les VALUES, mon code est :
$requete1 = "INSERT INTO table_2 (Col1, Col3) SELECT Col1 FROM table_1";

Un nouveau message d'erreur s'affiche :
Column count doesn't match value count at row 1

Re: Requête dans formulaire qui affiche message d'erreur

par or 1 » 06 nov. 2016, 19:58

https://mariadb.com/kb/en/mariadb/insert-select/ confirme la syntaxe.
quel est le message exact avec la dernière version ?

Re: Requête dans formulaire qui affiche message d'erreur

par Chris32 » 06 nov. 2016, 19:33

J'ai essayé la solution de or 1, je reçois le même message d'erreur ...
Quand j'essaie séparément le (INSERT INTO( et le (SELECT), chaque partie du code fonctionne ... mais les deux ensemble, c'est à dire un SELECT dans un INSERT INTO, le message d'erreur s'affiche.
J'ai beau vérifier la syntaxe, je ne comprends ce qui se passe.

Re: Requête dans formulaire qui affiche message d'erreur

par or 1 » 06 nov. 2016, 18:57

$requete1 = "INSERT INTO table_2 (Col1, Col3) SELECT Col1, 'x' FROM table_1";

Re: Requête dans formulaire qui affiche message d'erreur

par Chris32 » 06 nov. 2016, 18:52

Merci pour la réponse, mais je souhaitais réaliser que :

- la colonne 1 de la table_2 reçoive les lignes de la colonne 1 de la table_1
et que :
- la colonne 3 de la table_2 reçoive une valeur 'x' (valeur fixe)

Faisable ?

Re: Requête dans formulaire qui affiche message d'erreur

par or 1 » 06 nov. 2016, 18:36

la bonne syntaxe, c'est
$requete1 = "INSERT INTO table_2 (Col1, Col3) SELECT Col1, Col3 FROM table_1";

Re: Requête dans formulaire qui affiche message d'erreur

par Chris32 » 06 nov. 2016, 17:32

Petit rectificatif de mon code Php :

$requete1 = "INSERT INTO table_2 (Col1, Col3) VALUES ('', 'x') SELECT Col1 FROM table_1";

... Pardon, la fatigue des recherches ...

Requête dans formulaire qui affiche message d'erreur

par Chris32 » 06 nov. 2016, 17:16

Bonjour à tous et à toutes.
J'ai fabriqué un formulaire pour insérer les lignes vers
table_2 (4 colonnes : Id, Col1, Col2, Col3)
en provenance de la
table_1 (3 colonnes : Id, Col1,Col2)

Mon code Php :
$requete1 = "INSERT INTO table_2 (Col2, Col4) VALUES ('', 'x') SELECT Col1 FROM table_1";

Le message suivant s'affiche : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT Col1 FROM table_1'

Après de nombreuse recherches, je suis en panne de solutions.
Puis-je bénéficier de vos éclairages sur les erreurs commises ?
Merci d'avance.