INSERT INTO wa_abo_liste (abo_id, liste_id, format) SELECT wa_abonnes.abo_id, NULL, NULL FROM wa_abonnes UNION SELECT NULL, 1, 2 FROM wa_abonnes WHERE abo_id = (SELECT MAX(abo_id) FROM wa_abonnes)
Par exemple
ADB a écrit:
Bonjour, Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci ADB
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
INSERT INTO wa_abo_liste (abo_id, liste_id, format)
SELECT wa_abonnes.abo_id, NULL, NULL
FROM wa_abonnes
UNION
SELECT NULL, 1, 2
FROM wa_abonnes
WHERE abo_id = (SELECT MAX(abo_id) FROM wa_abonnes)
Par exemple
ADB a écrit:
Bonjour,
Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes
INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci
ADB
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
INSERT INTO wa_abo_liste (abo_id, liste_id, format) SELECT wa_abonnes.abo_id, NULL, NULL FROM wa_abonnes UNION SELECT NULL, 1, 2 FROM wa_abonnes WHERE abo_id = (SELECT MAX(abo_id) FROM wa_abonnes)
Par exemple
ADB a écrit:
Bonjour, Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci ADB
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
yves
Pour avoir déjà pratiquer des UNION, j'ai peur que le résultat du SELECT ... UNION SELECT .... va donner
abo_id NULL NULL NULL 1 2
et donc que l' INSERT ne marchera pas.
Non ?
Cdlt,
Fred BROUARD - SQLpro wrote:
INSERT INTO wa_abo_liste (abo_id, liste_id, format) SELECT wa_abonnes.abo_id, NULL, NULL FROM wa_abonnes UNION SELECT NULL, 1, 2 FROM wa_abonnes WHERE abo_id = (SELECT MAX(abo_id) FROM wa_abonnes)
Par exemple
ADB a écrit:
Bonjour, Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci ADB
Pour avoir déjà pratiquer des UNION,
j'ai peur que le résultat du SELECT ... UNION SELECT .... va donner
abo_id NULL NULL
NULL 1 2
et donc que l' INSERT ne marchera pas.
Non ?
Cdlt,
Fred BROUARD - SQLpro wrote:
INSERT INTO wa_abo_liste (abo_id, liste_id, format)
SELECT wa_abonnes.abo_id, NULL, NULL
FROM wa_abonnes
UNION
SELECT NULL, 1, 2
FROM wa_abonnes
WHERE abo_id = (SELECT MAX(abo_id) FROM wa_abonnes)
Par exemple
ADB a écrit:
Bonjour,
Est-il possible de regrouper ces 2 requêtes en une seule, et comment
?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM
wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Pour avoir déjà pratiquer des UNION, j'ai peur que le résultat du SELECT ... UNION SELECT .... va donner
abo_id NULL NULL NULL 1 2
et donc que l' INSERT ne marchera pas.
Non ?
Cdlt,
Fred BROUARD - SQLpro wrote:
INSERT INTO wa_abo_liste (abo_id, liste_id, format) SELECT wa_abonnes.abo_id, NULL, NULL FROM wa_abonnes UNION SELECT NULL, 1, 2 FROM wa_abonnes WHERE abo_id = (SELECT MAX(abo_id) FROM wa_abonnes)
Par exemple
ADB a écrit:
Bonjour, Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci ADB
Fred BROUARD - SQLpro
as tu essayé ?
Qu'est ce qui t'éffraie ?
C'est bien ce que tu voulais non ???
A +
yves a écrit:
Pour avoir déjà pratiquer des UNION, j'ai peur que le résultat du SELECT ... UNION SELECT .... va donner
abo_id NULL NULL NULL 1 2
et donc que l' INSERT ne marchera pas.
Non ?
Cdlt,
Fred BROUARD - SQLpro wrote:
INSERT INTO wa_abo_liste (abo_id, liste_id, format) SELECT wa_abonnes.abo_id, NULL, NULL FROM wa_abonnes UNION SELECT NULL, 1, 2 FROM wa_abonnes WHERE abo_id = (SELECT MAX(abo_id) FROM wa_abonnes)
Par exemple
ADB a écrit:
Bonjour, Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci ADB
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
as tu essayé ?
Qu'est ce qui t'éffraie ?
C'est bien ce que tu voulais non ???
A +
yves a écrit:
Pour avoir déjà pratiquer des UNION,
j'ai peur que le résultat du SELECT ... UNION SELECT .... va donner
abo_id NULL NULL
NULL 1 2
et donc que l' INSERT ne marchera pas.
Non ?
Cdlt,
Fred BROUARD - SQLpro wrote:
INSERT INTO wa_abo_liste (abo_id, liste_id, format)
SELECT wa_abonnes.abo_id, NULL, NULL
FROM wa_abonnes
UNION
SELECT NULL, 1, 2
FROM wa_abonnes
WHERE abo_id = (SELECT MAX(abo_id) FROM wa_abonnes)
Par exemple
ADB a écrit:
Bonjour,
Est-il possible de regrouper ces 2 requêtes en une seule, et comment
?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM
wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci
ADB
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Pour avoir déjà pratiquer des UNION, j'ai peur que le résultat du SELECT ... UNION SELECT .... va donner
abo_id NULL NULL NULL 1 2
et donc que l' INSERT ne marchera pas.
Non ?
Cdlt,
Fred BROUARD - SQLpro wrote:
INSERT INTO wa_abo_liste (abo_id, liste_id, format) SELECT wa_abonnes.abo_id, NULL, NULL FROM wa_abonnes UNION SELECT NULL, 1, 2 FROM wa_abonnes WHERE abo_id = (SELECT MAX(abo_id) FROM wa_abonnes)
Par exemple
ADB a écrit:
Bonjour, Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci ADB
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Igor Racic
ADB wrote:
Bonjour, Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci ADB
Quel peut être le raison de le faire ? Diminuer le aller-retour entre la base et le client ou c'est la question theorétique ?
Je ne vois pas beaucoup d'intêrets de le faire...
Igor
ADB wrote:
Bonjour,
Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes
INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci
ADB
Quel peut être le raison de le faire ?
Diminuer le aller-retour entre la base et le client ou c'est la question
theorétique ?
Bonjour, Est-il possible de regrouper ces 2 requêtes en une seule, et comment ?
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
Merci ADB
Quel peut être le raison de le faire ? Diminuer le aller-retour entre la base et le client ou c'est la question theorétique ?
Je ne vois pas beaucoup d'intêrets de le faire...
Igor
ADB
Les regrouper parce que - les 1re données viennent d'une autre table et vont remplir abo_liste - ensuite, les champs de abo_liste ne seront pas remplis Donc je voudrais que le champ abo_id se remplisse ET que les champs liste_id et format remplissent également toutes les lignes remplies par la 1re opération. Merci ADB
Les regrouper parce que
- les 1re données viennent d'une autre table et vont remplir abo_liste
- ensuite, les champs de abo_liste ne seront pas remplis
Donc je voudrais que le champ abo_id se remplisse ET que les champs
liste_id et format remplissent également toutes les lignes remplies par
la 1re opération.
Merci
ADB
Les regrouper parce que - les 1re données viennent d'une autre table et vont remplir abo_liste - ensuite, les champs de abo_liste ne seront pas remplis Donc je voudrais que le champ abo_id se remplisse ET que les champs liste_id et format remplissent également toutes les lignes remplies par la 1re opération. Merci ADB
Igor Racic
ADB wrote:
Les regrouper parce que - les 1re données viennent d'une autre table et vont remplir abo_liste - ensuite, les champs de abo_liste ne seront pas remplis Donc je voudrais que le champ abo_id se remplisse ET que les champs liste_id et format remplissent également toutes les lignes remplies par la 1re opération. Merci ADB
<quote> INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2) <quote>
Si j'ai bien compris (mais je ne suis pas très sûre) tu veux initiaiser ler deux autres champs à la fois dans la MEME LIGNE:
insert into wa_abo_liste (abo_id, liste_id, format) select wa_abonnes.abo_id, 1, 2 from wa_abonnes
OU
Tu veux toujours deux lignes qu'on toujours abo_id bien remplie. Dans ce cas il tu peux le faire (dans Oracle) avec une sequence et un trigger
Si non, comment les données doivent être à la fin ?
Igor
ADB wrote:
Les regrouper parce que
- les 1re données viennent d'une autre table et vont remplir abo_liste
- ensuite, les champs de abo_liste ne seront pas remplis
Donc je voudrais que le champ abo_id se remplisse ET que les champs
liste_id et format remplissent également toutes les lignes remplies par
la 1re opération.
Merci
ADB
<quote>
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes
INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
<quote>
Si j'ai bien compris (mais je ne suis pas très sûre) tu veux initiaiser
ler deux autres champs à la fois dans la MEME LIGNE:
insert into wa_abo_liste (abo_id, liste_id, format) select
wa_abonnes.abo_id, 1, 2 from wa_abonnes
OU
Tu veux toujours deux lignes qu'on toujours abo_id bien remplie.
Dans ce cas il tu peux le faire (dans Oracle) avec une sequence et un
trigger
Si non, comment les données doivent être à la fin ?
Les regrouper parce que - les 1re données viennent d'une autre table et vont remplir abo_liste - ensuite, les champs de abo_liste ne seront pas remplis Donc je voudrais que le champ abo_id se remplisse ET que les champs liste_id et format remplissent également toutes les lignes remplies par la 1re opération. Merci ADB
<quote> INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2) <quote>
Si j'ai bien compris (mais je ne suis pas très sûre) tu veux initiaiser ler deux autres champs à la fois dans la MEME LIGNE:
insert into wa_abo_liste (abo_id, liste_id, format) select wa_abonnes.abo_id, 1, 2 from wa_abonnes
OU
Tu veux toujours deux lignes qu'on toujours abo_id bien remplie. Dans ce cas il tu peux le faire (dans Oracle) avec une sequence et un trigger
Si non, comment les données doivent être à la fin ?
Igor
ADB
Merci de t'intéresser à mon pb. J'explique mieux: J'ai une liste d'email dans une table X (peu importe). Ces email vont aller remplir le champ abo_email de la table abonnes (le champ abo_id s'auto-incremente). De cette table abonnes, je veux remplir la table abo_liste de sorte que abo_id de abonnes et abo_id de abo_liste se correspondent. Mais en plus, je veux que les champs liste_id et format de abo_liste se remplissent.
En fait, tout ce Insert vient après un autre Insert sur la table X, qui se trouve dans une autre base. ADB
Igor Racic wrote:
ADB wrote:
Les regrouper parce que - les 1re données viennent d'une autre table et vont remplir abo_liste - ensuite, les champs de abo_liste ne seront pas remplis Donc je voudrais que le champ abo_id se remplisse ET que les champs liste_id et format remplissent également toutes les lignes remplies par la 1re opération. Merci ADB
<quote> INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2) <quote>
Si j'ai bien compris (mais je ne suis pas très sûre) tu veux initiaiser ler deux autres champs à la fois dans la MEME LIGNE:
insert into wa_abo_liste (abo_id, liste_id, format) select wa_abonnes.abo_id, 1, 2 from wa_abonnes
OU
Tu veux toujours deux lignes qu'on toujours abo_id bien remplie. Dans ce cas il tu peux le faire (dans Oracle) avec une sequence et un trigger
Si non, comment les données doivent être à la fin ?
Igor
Merci de t'intéresser à mon pb.
J'explique mieux:
J'ai une liste d'email dans une table X (peu importe).
Ces email vont aller remplir le champ abo_email de la table abonnes (le
champ abo_id s'auto-incremente).
De cette table abonnes, je veux remplir la table abo_liste de sorte que
abo_id de abonnes et abo_id de abo_liste se correspondent.
Mais en plus, je veux que les champs liste_id et format de abo_liste se
remplissent.
En fait, tout ce Insert vient après un autre Insert sur la table X, qui
se trouve dans une autre base.
ADB
Igor Racic wrote:
ADB wrote:
Les regrouper parce que
- les 1re données viennent d'une autre table et vont remplir abo_liste
- ensuite, les champs de abo_liste ne seront pas remplis
Donc je voudrais que le champ abo_id se remplisse ET que les champs
liste_id et format remplissent également toutes les lignes remplies
par la 1re opération.
Merci
ADB
<quote>
INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes
INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2)
<quote>
Si j'ai bien compris (mais je ne suis pas très sûre) tu veux initiaiser
ler deux autres champs à la fois dans la MEME LIGNE:
insert into wa_abo_liste (abo_id, liste_id, format) select
wa_abonnes.abo_id, 1, 2 from wa_abonnes
OU
Tu veux toujours deux lignes qu'on toujours abo_id bien remplie.
Dans ce cas il tu peux le faire (dans Oracle) avec une sequence et un
trigger
Si non, comment les données doivent être à la fin ?
Merci de t'intéresser à mon pb. J'explique mieux: J'ai une liste d'email dans une table X (peu importe). Ces email vont aller remplir le champ abo_email de la table abonnes (le champ abo_id s'auto-incremente). De cette table abonnes, je veux remplir la table abo_liste de sorte que abo_id de abonnes et abo_id de abo_liste se correspondent. Mais en plus, je veux que les champs liste_id et format de abo_liste se remplissent.
En fait, tout ce Insert vient après un autre Insert sur la table X, qui se trouve dans une autre base. ADB
Igor Racic wrote:
ADB wrote:
Les regrouper parce que - les 1re données viennent d'une autre table et vont remplir abo_liste - ensuite, les champs de abo_liste ne seront pas remplis Donc je voudrais que le champ abo_id se remplisse ET que les champs liste_id et format remplissent également toutes les lignes remplies par la 1re opération. Merci ADB
<quote> INSERT INTO wa_abo_liste (abo_id) SELECT wa_abonnes.abo_id FROM wa_abonnes INSERT INTO wa_abo_liste (liste_id, format) VALUES (1,2) <quote>
Si j'ai bien compris (mais je ne suis pas très sûre) tu veux initiaiser ler deux autres champs à la fois dans la MEME LIGNE:
insert into wa_abo_liste (abo_id, liste_id, format) select wa_abonnes.abo_id, 1, 2 from wa_abonnes
OU
Tu veux toujours deux lignes qu'on toujours abo_id bien remplie. Dans ce cas il tu peux le faire (dans Oracle) avec une sequence et un trigger
Si non, comment les données doivent être à la fin ?
Igor
Igor Racic
ADB wrote:
Merci de t'intéresser à mon pb. J'explique mieux: J'ai une liste d'email dans une table X (peu importe). Ces email vont aller remplir le champ abo_email de la table abonnes (le champ abo_id s'auto-incremente). De cette table abonnes, je veux remplir la table abo_liste de sorte que abo_id de abonnes et abo_id de abo_liste se correspondent. Mais en plus, je veux que les champs liste_id et format de abo_liste se remplissent.
En fait, tout ce Insert vient après un autre Insert sur la table X, qui se trouve dans une autre base. ADB
Alors, it te faut un "POST INSERT" trigger dans la table X (qui pour chaque lignes va inserer dans la table abonnes ).
Et soit le même trigger vas inserer dans abo_liste soit un "POST INSERT" trigger dans table abonnes vas inserer dans abo_liste. Le choix depend de question d'où viens l'info pour "que les champs liste_id et format de abo_liste se remplissent".
Si sont les constants 1,2 comme dans ta 1er question alors trigger dans X peux faire les choses complétement. Si par contre l'info viens de table abonnes c'est 2èmme triger qui est egalement necessaire.
Alors, donne un example bien prècis pour une réponse plus précis.
Aussi, il me semble d'avoir besoin de vérifier le model de données (est-ce que l'info redundant dans les deux tables est bien justifié)
Igor
ADB wrote:
Merci de t'intéresser à mon pb.
J'explique mieux:
J'ai une liste d'email dans une table X (peu importe).
Ces email vont aller remplir le champ abo_email de la table abonnes (le
champ abo_id s'auto-incremente).
De cette table abonnes, je veux remplir la table abo_liste de sorte que
abo_id de abonnes et abo_id de abo_liste se correspondent.
Mais en plus, je veux que les champs liste_id et format de abo_liste se
remplissent.
En fait, tout ce Insert vient après un autre Insert sur la table X, qui
se trouve dans une autre base.
ADB
Alors, it te faut un "POST INSERT" trigger dans la table X
(qui pour chaque lignes va inserer dans la table abonnes ).
Et soit le même trigger vas inserer dans abo_liste soit un "POST INSERT"
trigger dans table abonnes vas inserer dans abo_liste.
Le choix depend de question d'où viens l'info pour "que les champs
liste_id et format de abo_liste se remplissent".
Si sont les constants 1,2 comme dans ta 1er question alors trigger dans
X peux faire les choses complétement. Si par contre l'info viens de
table abonnes c'est 2èmme triger qui est egalement necessaire.
Alors, donne un example bien prècis pour une réponse plus précis.
Aussi, il me semble d'avoir besoin de vérifier le model de données
(est-ce que l'info redundant dans les deux tables est bien justifié)
Merci de t'intéresser à mon pb. J'explique mieux: J'ai une liste d'email dans une table X (peu importe). Ces email vont aller remplir le champ abo_email de la table abonnes (le champ abo_id s'auto-incremente). De cette table abonnes, je veux remplir la table abo_liste de sorte que abo_id de abonnes et abo_id de abo_liste se correspondent. Mais en plus, je veux que les champs liste_id et format de abo_liste se remplissent.
En fait, tout ce Insert vient après un autre Insert sur la table X, qui se trouve dans une autre base. ADB
Alors, it te faut un "POST INSERT" trigger dans la table X (qui pour chaque lignes va inserer dans la table abonnes ).
Et soit le même trigger vas inserer dans abo_liste soit un "POST INSERT" trigger dans table abonnes vas inserer dans abo_liste. Le choix depend de question d'où viens l'info pour "que les champs liste_id et format de abo_liste se remplissent".
Si sont les constants 1,2 comme dans ta 1er question alors trigger dans X peux faire les choses complétement. Si par contre l'info viens de table abonnes c'est 2èmme triger qui est egalement necessaire.
Alors, donne un example bien prècis pour une réponse plus précis.
Aussi, il me semble d'avoir besoin de vérifier le model de données (est-ce que l'info redundant dans les deux tables est bien justifié)
Igor
ADB
Le pb s'est décalé -) Car j'ai rempli les tables directement depuois phpmyadmin. Mais maintenant se pose le pb de l'insertion ou update à chaque nouvelle entrée (la 1re fois, c'était pour passer tout d'un seul coup, maintenant, c'est lors de l'enreg d'un nouveau meail ou un update d'email). Désolé, mais je progresse dans l'action.
Le code suivant doit me permettre d'insérer un enregistrement s'il n'existait pas auparavant, ou de mettre à jour la table si l'enregistrement correspondant existait. J'ai donc cela:
include("database2.php3"); // Fonctions d"accès à la base de données
$id_connex2=ouvrir_base2(); $requete="SELECT * FROM wa_abonnes WHERE abo_email='$email' "; echo"<br><br><br>$requete"; //envoi de la requête $id_result=mysql_query($requete, $id_connex2);
if(!$id_result) { $date=time(); $req1="update a1.wa_abonnes set abo_email='$email', abo_register_date='$date' "; echo"<br><br><br>$req1<br>"; $req2="update a1.wa_abo_liste set abo_id=wa_abonnes.abo_id, liste_id='1', format='2' "; echo"$req2"; } else { $date=time(); $req1="insert into a1.wa_abonnes set abo_email='$email', abo_register_date='$date' "; $id_result=mysql_query($req1, $id_connex2); echo"<br><br><br>$req1<br>"; $req2="SELECT * FROM wa_abonnes WHERE abo_email='$email' "; $id_resultx=mysql_query($req2, $id_connex2); while($table mysql_fetch_array($id_resultx, MYSQL_ASSOC)) { $req3="insert into a1.wa_abo_liste set abo_id='$table[abo_id]', liste_id='1', format='2' "; echo"$req2<br>$req3"; } }
Actuellement, l'enregistrement n'existe pas et je fais bien un premier insert dans a1.wa_abonnes. En revanche, je n'ai pas d'insert dans a1.wa_abo_liste Je ne comprends pas pourquoi. Merci de bien vouloir m'éclairer. ADB
Igor Racic wrote:
ADB wrote:
Alors, it te faut un "POST INSERT" trigger dans la table X (qui pour chaque lignes va inserer dans la table abonnes ).
Et soit le même trigger vas inserer dans abo_liste soit un "POST INSERT" trigger dans table abonnes vas inserer dans abo_liste. Le choix depend de question d'où viens l'info pour "que les champs liste_id et format de abo_liste se remplissent".
Si sont les constants 1,2 comme dans ta 1er question alors trigger dans X peux faire les choses complétement. Si par contre l'info viens de table abonnes c'est 2èmme triger qui est egalement necessaire.
Alors, donne un example bien prècis pour une réponse plus précis.
Aussi, il me semble d'avoir besoin de vérifier le model de données (est-ce que l'info redundant dans les deux tables est bien justifié)
Igor
Le pb s'est décalé -)
Car j'ai rempli les tables directement depuois phpmyadmin.
Mais maintenant se pose le pb de l'insertion ou update à chaque nouvelle
entrée (la 1re fois, c'était pour passer tout d'un seul coup,
maintenant, c'est lors de l'enreg d'un nouveau meail ou un update
d'email). Désolé, mais je progresse dans l'action.
Le code suivant doit me permettre d'insérer un enregistrement s'il
n'existait pas auparavant, ou de mettre à jour la table si
l'enregistrement correspondant existait.
J'ai donc cela:
include("database2.php3"); // Fonctions d"accès à la base de données
$id_connex2=ouvrir_base2();
$requete="SELECT * FROM wa_abonnes WHERE abo_email='$email' ";
echo"<br><br><br>$requete";
//envoi de la requête
$id_result=mysql_query($requete, $id_connex2);
if(!$id_result)
{
$date=time();
$req1="update a1.wa_abonnes set abo_email='$email',
abo_register_date='$date' ";
echo"<br><br><br>$req1<br>";
$req2="update a1.wa_abo_liste set abo_id=wa_abonnes.abo_id,
liste_id='1', format='2' ";
echo"$req2";
}
else {
$date=time();
$req1="insert into a1.wa_abonnes set abo_email='$email',
abo_register_date='$date' ";
$id_result=mysql_query($req1, $id_connex2);
echo"<br><br><br>$req1<br>";
$req2="SELECT * FROM wa_abonnes WHERE abo_email='$email' ";
$id_resultx=mysql_query($req2, $id_connex2);
while($table mysql_fetch_array($id_resultx, MYSQL_ASSOC))
{
$req3="insert into a1.wa_abo_liste set abo_id='$table[abo_id]',
liste_id='1', format='2' ";
echo"$req2<br>$req3";
}
}
Actuellement, l'enregistrement n'existe pas et je fais bien un premier
insert dans a1.wa_abonnes.
En revanche, je n'ai pas d'insert dans a1.wa_abo_liste
Je ne comprends pas pourquoi.
Merci de bien vouloir m'éclairer.
ADB
Igor Racic wrote:
ADB wrote:
Alors, it te faut un "POST INSERT" trigger dans la table X
(qui pour chaque lignes va inserer dans la table abonnes ).
Et soit le même trigger vas inserer dans abo_liste soit un "POST INSERT"
trigger dans table abonnes vas inserer dans abo_liste.
Le choix depend de question d'où viens l'info pour "que les champs
liste_id et format de abo_liste se remplissent".
Si sont les constants 1,2 comme dans ta 1er question alors trigger dans
X peux faire les choses complétement. Si par contre l'info viens de
table abonnes c'est 2èmme triger qui est egalement necessaire.
Alors, donne un example bien prècis pour une réponse plus précis.
Aussi, il me semble d'avoir besoin de vérifier le model de données
(est-ce que l'info redundant dans les deux tables est bien justifié)
Le pb s'est décalé -) Car j'ai rempli les tables directement depuois phpmyadmin. Mais maintenant se pose le pb de l'insertion ou update à chaque nouvelle entrée (la 1re fois, c'était pour passer tout d'un seul coup, maintenant, c'est lors de l'enreg d'un nouveau meail ou un update d'email). Désolé, mais je progresse dans l'action.
Le code suivant doit me permettre d'insérer un enregistrement s'il n'existait pas auparavant, ou de mettre à jour la table si l'enregistrement correspondant existait. J'ai donc cela:
include("database2.php3"); // Fonctions d"accès à la base de données
$id_connex2=ouvrir_base2(); $requete="SELECT * FROM wa_abonnes WHERE abo_email='$email' "; echo"<br><br><br>$requete"; //envoi de la requête $id_result=mysql_query($requete, $id_connex2);
if(!$id_result) { $date=time(); $req1="update a1.wa_abonnes set abo_email='$email', abo_register_date='$date' "; echo"<br><br><br>$req1<br>"; $req2="update a1.wa_abo_liste set abo_id=wa_abonnes.abo_id, liste_id='1', format='2' "; echo"$req2"; } else { $date=time(); $req1="insert into a1.wa_abonnes set abo_email='$email', abo_register_date='$date' "; $id_result=mysql_query($req1, $id_connex2); echo"<br><br><br>$req1<br>"; $req2="SELECT * FROM wa_abonnes WHERE abo_email='$email' "; $id_resultx=mysql_query($req2, $id_connex2); while($table mysql_fetch_array($id_resultx, MYSQL_ASSOC)) { $req3="insert into a1.wa_abo_liste set abo_id='$table[abo_id]', liste_id='1', format='2' "; echo"$req2<br>$req3"; } }
Actuellement, l'enregistrement n'existe pas et je fais bien un premier insert dans a1.wa_abonnes. En revanche, je n'ai pas d'insert dans a1.wa_abo_liste Je ne comprends pas pourquoi. Merci de bien vouloir m'éclairer. ADB
Igor Racic wrote:
ADB wrote:
Alors, it te faut un "POST INSERT" trigger dans la table X (qui pour chaque lignes va inserer dans la table abonnes ).
Et soit le même trigger vas inserer dans abo_liste soit un "POST INSERT" trigger dans table abonnes vas inserer dans abo_liste. Le choix depend de question d'où viens l'info pour "que les champs liste_id et format de abo_liste se remplissent".
Si sont les constants 1,2 comme dans ta 1er question alors trigger dans X peux faire les choses complétement. Si par contre l'info viens de table abonnes c'est 2èmme triger qui est egalement necessaire.
Alors, donne un example bien prècis pour une réponse plus précis.
Aussi, il me semble d'avoir besoin de vérifier le model de données (est-ce que l'info redundant dans les deux tables est bien justifié)
Igor
Igor Racic
Je ne me sens pas très bien avec mySQL et PHP. Désolé
Igor
ADB wrote:
Le pb s'est décalé -) Car j'ai rempli les tables directement depuois phpmyadmin.
Je ne me sens pas très bien avec mySQL et PHP.
Désolé
Igor
ADB wrote:
Le pb s'est décalé -)
Car j'ai rempli les tables directement depuois phpmyadmin.